Don't concat to nil objects

This commit is contained in:
Santiago Pastorino
2014-01-09 15:35:29 -02:00
parent df481b2b35
commit 3e510c829b
2 changed files with 37 additions and 1 deletions

View File

@@ -108,6 +108,42 @@ module ActiveModel
ensure
UserSerializer._associations[:profile] = @old_association
end
def test_embed_object_in_root_for_has_one_association_with_nil_value
@association = UserSerializer._associations[:profile]
@old_association = @association.dup
@association.embed = :ids
@association.embed_in_root = true
@user1 = User.new({ name: 'User 1', email: 'email1@server.com' })
@user2 = User.new({ name: 'User 2', email: 'email2@server.com' })
class << @user1
def profile
nil
end
end
class << @user2
def profile
@profile ||= Profile.new(name: 'Name 1', description: 'Desc 1')
end
end
@serializer = ArraySerializer.new([@user1, @user2], root: :users)
assert_equal({
users: [
{ name: "User 1", email: "email1@server.com", 'profile_id' => nil },
{ name: "User 2", email: "email2@server.com", 'profile_id' => @user2.profile.object_id }
],
'profiles' => [
{ name: 'Name 1', description: 'Desc 1' }
]
}, @serializer.as_json)
ensure
UserSerializer._associations[:profile] = @old_association
end
end
end
end