Sha256: d3c84173fb4c1450416d166b185903a617f308232bc98fc34a992f9c267c39dc

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

require 'test_helper'
module ActiveModel
  class Serializer
    module Adapter
      class FragmentCacheTest < ActiveSupport::TestCase
        def setup
          super
          @spam            = Spam::UnrelatedLink.new(id: 'spam-id-1')
          @author          = Author.new(name: 'Joao M. D. Moura')
          @role            = Role.new(name: 'Great Author', description: nil)
          @role.author     = [@author]
          @role_serializer = RoleSerializer.new(@role)
          @spam_serializer = Spam::UnrelatedLinkSerializer.new(@spam)
          @role_hash       = FragmentCache.new(RoleSerializer.adapter.new(@role_serializer), @role_serializer, {})
          @spam_hash       = FragmentCache.new(Spam::UnrelatedLinkSerializer.adapter.new(@spam_serializer), @spam_serializer, {})
        end

        def test_fragment_fetch_with_virtual_attributes
          expected_result = {
            id: @role.id,
            description: @role.description,
            slug: "#{@role.name}-#{@role.id}",
            name: @role.name
          }
          assert_equal(@role_hash.fetch, expected_result)
        end

        def test_fragment_fetch_with_namespaced_object
          expected_result = {
            id: @spam.id
          }
          assert_equal(@spam_hash.fetch, expected_result)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_model_serializers-0.10.0.rc4 test/adapter/fragment_cache_test.rb