# 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