Skip to content

Commit 747028b

Browse files
committed
Test context flow in get_related_resources
1 parent dc48d6d commit 747028b

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

test/controllers/controller_test.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3448,6 +3448,23 @@ def test_get_related_resources
34483448
}, json_response)
34493449
end
34503450

3451+
def test_get_related_resources_filtered
3452+
$test_user = Person.find(1)
3453+
get :get_related_resources, params: {moon_id: '1', relationship: 'craters', source: "api/v1/moons", filter: {description: 'Small crater'}}
3454+
assert_response :success
3455+
assert_hash_equals({
3456+
data: [
3457+
{
3458+
id:"A4D3",
3459+
type:"craters",
3460+
links:{self: "http://test.host/api/v1/craters/A4D3"},
3461+
attributes:{code: "A4D3", description: "Small crater"},
3462+
relationships:{moon: {links: {self: "http://test.host/api/v1/craters/A4D3/relationships/moon", related: "http://test.host/api/v1/craters/A4D3/moon"}}}
3463+
}
3464+
]
3465+
}, json_response)
3466+
end
3467+
34513468
def test_show_relationship
34523469
get :show_relationship, params: {crater_id: 'S56D', relationship: 'moon'}
34533470

test/fixtures/active_record.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,9 @@ class MoonsController < JSONAPI::ResourceController
671671
end
672672

673673
class CratersController < JSONAPI::ResourceController
674+
def context
675+
{current_user: $test_user}
676+
end
674677
end
675678

676679
class LikesController < JSONAPI::ResourceController
@@ -1069,6 +1072,11 @@ class CraterResource < JSONAPI::Resource
10691072

10701073
has_one :moon
10711074

1075+
filter :description, apply: -> (records, value, options) {
1076+
fail "context not set" unless options[:context][:current_user] != nil && options[:context][:current_user] == $test_user
1077+
records.where(:description => value)
1078+
}
1079+
10721080
def self.verify_key(key, context = nil)
10731081
key && String(key)
10741082
end

0 commit comments

Comments
 (0)