Raise correct error on bad include even for serializer without any relationships
before: > NoMethodError: undefined method `[]' for nil:NilClass now: > JSONAPI::Serializer::UnsupportedIncludeError: bad_include is not specified as a relationship
This commit is contained in:
parent
963cd77900
commit
79510d33e7
@ -341,7 +341,7 @@ module FastJsonapi
|
|||||||
return if includes.blank?
|
return if includes.blank?
|
||||||
|
|
||||||
parse_includes_list(includes).keys.each do |include_item|
|
parse_includes_list(includes).keys.each do |include_item|
|
||||||
relationship_to_include = relationships_to_serialize[include_item]
|
relationship_to_include = relationships_to_serialize && relationships_to_serialize[include_item]
|
||||||
raise(JSONAPI::Serializer::UnsupportedIncludeError.new(include_item, name)) unless relationship_to_include
|
raise(JSONAPI::Serializer::UnsupportedIncludeError.new(include_item, name)) unless relationship_to_include
|
||||||
|
|
||||||
relationship_to_include.static_serializer # called for a side-effect to check for a known serializer class.
|
relationship_to_include.static_serializer # called for a side-effect to check for a known serializer class.
|
||||||
|
@ -15,11 +15,22 @@ RSpec.describe JSONAPI::Serializer do
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
it do
|
it 'raises correct error on bad include for serializer with other relationships' do
|
||||||
|
expect(ActorSerializer.relationships_to_serialize).to be_present
|
||||||
|
|
||||||
expect { ActorSerializer.new(actor, include: ['bad_include']) }
|
expect { ActorSerializer.new(actor, include: ['bad_include']) }
|
||||||
.to raise_error(
|
.to raise_error(
|
||||||
JSONAPI::Serializer::UnsupportedIncludeError, /bad_include is not specified as a relationship/
|
JSONAPI::Serializer::UnsupportedIncludeError, /bad_include is not specified as a relationship/
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'raises correct error on bad include for serializer with no relationships at all' do
|
||||||
|
expect(UserSerializer.relationships_to_serialize).to be_nil
|
||||||
|
|
||||||
|
expect { UserSerializer.new(actor, include: ['bad_include']) }
|
||||||
|
.to raise_error(
|
||||||
|
JSONAPI::Serializer::UnsupportedIncludeError, /bad_include is not specified as a relationship/
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user