33module ActiveModel
44 class Serializer
55 class CollectionSerializerTest < ActiveSupport ::TestCase
6+ SingularModel = poro_without_caching_support
7+ class SingularModelSerializer < ActiveModel ::Serializer
8+ end
9+ HasManyModel = poro_without_caching_support ( ::Model ) do
10+ associations :singular_models
11+ end
12+ class HasManyModelSerializer < ActiveModel ::Serializer
13+ has_many :singular_models
14+
15+ def custom_options
16+ instance_options
17+ end
18+ end
619 class MessagesSerializer < ActiveModel ::Serializer
720 type 'messages'
821 end
922
1023 def setup
11- @comment = Comment . new
12- @post = Post . new
13- @resource = build_named_collection @comment , @post
24+ @singular_model = SingularModel . new
25+ @has_many_model = HasManyModel . new
26+ @resource = build_named_collection @singular_model , @has_many_model
1427 @serializer = collection_serializer . new ( @resource , some : :options )
1528 end
1629
@@ -34,29 +47,29 @@ def test_respond_to_each
3447 def test_each_object_should_be_serialized_with_appropriate_serializer
3548 serializers = @serializer . to_a
3649
37- assert_kind_of CommentSerializer , serializers . first
38- assert_kind_of Comment , serializers . first . object
50+ assert_kind_of SingularModelSerializer , serializers . first
51+ assert_kind_of SingularModel , serializers . first . object
3952
40- assert_kind_of PostSerializer , serializers . last
41- assert_kind_of Post , serializers . last . object
53+ assert_kind_of HasManyModelSerializer , serializers . last
54+ assert_kind_of HasManyModel , serializers . last . object
4255
4356 assert_equal :options , serializers . last . custom_options [ :some ]
4457 end
4558
4659 def test_serializer_option_not_passed_to_each_serializer
47- serializers = collection_serializer . new ( [ @post ] , serializer : PostSerializer ) . to_a
60+ serializers = collection_serializer . new ( [ @has_many_model ] , serializer : HasManyModelSerializer ) . to_a
4861
4962 refute serializers . first . custom_options . key? ( :serializer )
5063 end
5164
5265 def test_root_default
53- @serializer = collection_serializer . new ( [ @comment , @post ] )
66+ @serializer = collection_serializer . new ( [ @singular_model , @has_many_model ] )
5467 assert_nil @serializer . root
5568 end
5669
5770 def test_root
5871 expected = 'custom_root'
59- @serializer = collection_serializer . new ( [ @comment , @post ] , root : expected )
72+ @serializer = collection_serializer . new ( [ @singular_model , @has_many_model ] , root : expected )
6073 assert_equal expected , @serializer . root
6174 end
6275
0 commit comments