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