mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
added failing spec to show how both symbol and string keys are causing problems
This commit is contained in:
parent
89f87bf855
commit
34d684ee9a
12
test/fixtures/poro.rb
vendored
12
test/fixtures/poro.rb
vendored
@ -47,6 +47,12 @@ class Post < Model
|
||||
end
|
||||
end
|
||||
|
||||
class SpecialPost < Post
|
||||
def special_comment
|
||||
@speical_comment ||= Comment.new(content: 'special')
|
||||
end
|
||||
end
|
||||
|
||||
class Comment < Model
|
||||
end
|
||||
|
||||
@ -110,6 +116,12 @@ class PostSerializer < ActiveModel::Serializer
|
||||
has_many :comments
|
||||
end
|
||||
|
||||
class SpecialPostSerializer < ActiveModel::Serializer
|
||||
attributes :title, :body
|
||||
has_many :comments, root: :comments, embed_in_root: true, embed: :ids
|
||||
has_one :special_comment, root: :comments, embed_in_root: true, embed: :ids
|
||||
end
|
||||
|
||||
class CommentSerializer < ActiveModel::Serializer
|
||||
attributes :content
|
||||
end
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
require 'test_helper'
|
||||
|
||||
module ActiveModel
|
||||
class Serializer
|
||||
class HasOneAndHasManyTest < Minitest::Test
|
||||
def setup
|
||||
@post = SpecialPost.new({ title: 'T1', body: 'B1'})
|
||||
@post_serializer = SpecialPostSerializer.new(@post)
|
||||
end
|
||||
|
||||
def teardown
|
||||
end
|
||||
|
||||
def test_side_load_has_one_and_has_many_in_same_array
|
||||
assert_equal({
|
||||
"post" => {
|
||||
title: 'T1',
|
||||
body: 'B1',
|
||||
'comment_ids' => @post.comments.map { |c| c.object_id },
|
||||
'special_comment_id' => @post_serializer.special_comment.object_id,
|
||||
},
|
||||
"comments" => [{ content: 'C1' }, { content: 'C2' }, { content: 'special' }]
|
||||
}, @post_serializer.as_json(root: 'post'))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user