Skip to content

Commit 95027f4

Browse files
authored
Merge pull request cerebris#783 from cerebris/test_context_show_related_resources
Test context show related resources
2 parents df5a0f5 + 018c8f9 commit 95027f4

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

lib/jsonapi/request_parser.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ def add_show_related_resources_operation(relationship_type)
339339
source_klass: @source_klass,
340340
source_id: @source_id,
341341
filters: @source_klass.verify_filters(@filters, @context),
342-
include_directives: @include_directives,
343342
sort_criteria: @sort_criteria,
344343
paginator: @paginator,
345344
fields: @fields,

test/controllers/controller_test.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3441,6 +3441,23 @@ def test_get_related_resources
34413441
}, json_response)
34423442
end
34433443

3444+
def test_get_related_resources_filtered
3445+
$test_user = Person.find(1)
3446+
get :get_related_resources, params: {moon_id: '1', relationship: 'craters', source: "api/v1/moons", filter: {description: 'Small crater'}}
3447+
assert_response :success
3448+
assert_hash_equals({
3449+
data: [
3450+
{
3451+
id:"A4D3",
3452+
type:"craters",
3453+
links:{self: "http://test.host/api/v1/craters/A4D3"},
3454+
attributes:{code: "A4D3", description: "Small crater"},
3455+
relationships:{moon: {links: {self: "http://test.host/api/v1/craters/A4D3/relationships/moon", related: "http://test.host/api/v1/craters/A4D3/moon"}}}
3456+
}
3457+
]
3458+
}, json_response)
3459+
end
3460+
34443461
def test_show_relationship
34453462
assert_cacheable_get :show_relationship, params: {crater_id: 'S56D', relationship: 'moon'}
34463463

test/fixtures/active_record.rb

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

690690
class CratersController < JSONAPI::ResourceController
691+
def context
692+
{current_user: $test_user}
693+
end
691694
end
692695

693696
class LikesController < JSONAPI::ResourceController
@@ -1092,6 +1095,11 @@ class CraterResource < JSONAPI::Resource
10921095

10931096
has_one :moon
10941097

1098+
filter :description, apply: -> (records, value, options) {
1099+
fail "context not set" unless options[:context][:current_user] != nil && options[:context][:current_user] == $test_user
1100+
records.where(:description => value)
1101+
}
1102+
10951103
def self.verify_key(key, context = nil)
10961104
key && String(key)
10971105
end

0 commit comments

Comments
 (0)