Sha256: 75bc28eaf1d3d95bacd51ed8f483611e9a6e530b062820c5f3df4253cc0b9307

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

require 'test_helper'

module ActionController
  module Serialization
    class JsonApi
      class ErrorsTest < ActionController::TestCase
        def test_active_model_with_multiple_errors
          get :render_resource_with_errors

          expected_errors_object =
            { :errors =>
              [
                { :source => { :pointer => '/data/attributes/name' }, :detail => 'cannot be nil' },
                { :source => { :pointer => '/data/attributes/name' }, :detail => 'must be longer' },
                { :source => { :pointer => '/data/attributes/id' }, :detail => 'must be a uuid' }
              ]
          }.to_json
          assert_equal json_reponse_body.to_json, expected_errors_object
        end

        def json_reponse_body
          JSON.load(@response.body)
        end

        class ErrorsTestController < ActionController::Base
          def render_resource_with_errors
            resource = Profile.new(name: 'Name 1',
                                   description: 'Description 1',
                                   comments: 'Comments 1')
            resource.errors.add(:name, 'cannot be nil')
            resource.errors.add(:name, 'must be longer')
            resource.errors.add(:id, 'must be a uuid')
            render json: resource, adapter: :json_api, serializer: ActiveModel::Serializer::ErrorSerializer
          end
        end

        tests ErrorsTestController
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_model_serializers-0.10.0 test/action_controller/json_api/errors_test.rb
active_model_serializers-0.10.0.rc5 test/action_controller/json_api/errors_test.rb