From fd5cd879f8a7345c15f1a30d4e42bc19f052eeca Mon Sep 17 00:00:00 2001 From: Raphael Pereira Date: Sat, 28 Mar 2015 13:24:03 -0300 Subject: [PATCH] Added test case for association propagating options --- test/fixtures/poro.rb | 7 +++++++ test/unit/active_model/serializer/options_test.rb | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/test/fixtures/poro.rb b/test/fixtures/poro.rb index 73fc0463..74db9aa1 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -113,6 +113,13 @@ end class PostSerializer < ActiveModel::Serializer attributes :title, :body + def title + keyword = serialization_options[:highlight_keyword] + title = object.read_attribute_for_serialization(:title) + title = title.gsub(keyword,"'#{keyword}'") if keyword + title + end + has_many :comments end diff --git a/test/unit/active_model/serializer/options_test.rb b/test/unit/active_model/serializer/options_test.rb index 2e14151f..b2c5c02e 100644 --- a/test/unit/active_model/serializer/options_test.rb +++ b/test/unit/active_model/serializer/options_test.rb @@ -21,6 +21,9 @@ module ActiveModel serialization_options[:force_the_description] end end + + @category = Category.new({name: 'Category 1'}) + @category_serializer = CategorySerializer.new(@category) end def test_filtered_attributes_serialization @@ -29,6 +32,11 @@ module ActiveModel 'profile' => { name: 'Name 1', description: forced_description } }, @profile_serializer.as_json(force_the_description: forced_description)) end + + def test_filtered_attributes_serialization_across_association + assert_equal("'T1'", + @category_serializer.as_json(highlight_keyword: 'T1')['category'][:posts][0][:title]) + end end end end