mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Fix deserialization of nil relationships
failing test use try for when the assoc_data is possibly nil rubocop test/action_controller/json_api/deserialization_test.rb -a attempt to work on rails-master account for rails/master having instead of nil for assoc_data added changelog
This commit is contained in:
@@ -9,10 +9,50 @@ module ActionController
|
||||
parsed_hash = ActiveModelSerializers::Deserialization.jsonapi_parse(params)
|
||||
render json: parsed_hash
|
||||
end
|
||||
|
||||
def render_polymorphic_parsed_payload
|
||||
parsed_hash = ActiveModelSerializers::Deserialization.jsonapi_parse(
|
||||
params,
|
||||
polymorphic: [:restriction_for, :restricted_to]
|
||||
)
|
||||
render json: parsed_hash
|
||||
end
|
||||
end
|
||||
|
||||
tests DeserializationTestController
|
||||
|
||||
def test_deserialization_of_relationship_only_object
|
||||
hash = {
|
||||
'data' => {
|
||||
'type' => 'restraints',
|
||||
'relationships' => {
|
||||
'restriction_for' => {
|
||||
'data' => {
|
||||
'type' => 'discounts',
|
||||
'id' => '67'
|
||||
}
|
||||
},
|
||||
'restricted_to' => {
|
||||
'data' => nil
|
||||
}
|
||||
}
|
||||
},
|
||||
'restraint' => {}
|
||||
}
|
||||
|
||||
post :render_polymorphic_parsed_payload, params: hash
|
||||
|
||||
response = JSON.parse(@response.body)
|
||||
expected = {
|
||||
'restriction_for_id' => '67',
|
||||
'restriction_for_type' => 'discounts',
|
||||
'restricted_to_id' => nil,
|
||||
'restricted_to_type' => nil
|
||||
}
|
||||
|
||||
assert_equal(expected, response)
|
||||
end
|
||||
|
||||
def test_deserialization
|
||||
hash = {
|
||||
'data' => {
|
||||
|
||||
Reference in New Issue
Block a user