# frozen_string_literal: true require 'test_helper' module AMS class Serializer class AsJsonTest < Test class ParentModelSerializer < Serializer id_field :id type :profiles attribute :name attribute :description, key: :summary relation :child_models, type: :comments, to: :many, ids: 'object.child_models.map(&:id)' end def setup super @relation = ChildModel.new(id: 2, name: 'comment') @object = ParentModel.new( id: 1, name: 'name', description: 'description', child_models: [@relation] ) @serializer_class = ParentModelSerializer @serializer_instance = @serializer_class.new(@object) end def test_model_instance_as_json expected = { id: 1, type: :profiles, attributes: {name: "name", summary: "description"}, relationships: {child_models: [{data: {id: 2, type: "comments"}}]} } assert_equal expected, @serializer_instance.as_json end def test_model_instance_to_json expected = { id: 1, type: :profiles, attributes: {name: "name", summary: "description"}, relationships: {child_models: [{data: {id: 2, type: "comments"}}]} }.to_json assert_equal expected, @serializer_instance.to_json end def test_model_instance_dump expected = { id: 1, type: :profiles }.to_json assert_equal expected, @serializer_instance.dump(id: 1, type: :profiles) end end end end