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?
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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']) }
|
||||
.to raise_error(
|
||||
JSONAPI::Serializer::UnsupportedIncludeError, /bad_include is not specified as a relationship/
|
||||
)
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user