Sha256: 4e6d953e7c6ae89c1c892d51abc2561c9901a172e4b2060658b66d58ca41591d

Contents?: true

Size: 1.62 KB

Versions: 12

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

describe DHS::Item do
  context 'error codes' do
    before do
      I18n.reload!
      I18n.backend.store_translations(:en, YAML.safe_load(translation)) if translation.present?
      class Record < DHS::Record
        endpoint 'http://datastore/records'
      end
    end

    let(:translation) do
      %q{
        dhs:
          errors:
            fallback_message: 'This value is wrong'
      }
    end

    it 'provides error codes along side with translated messages' do
      stub_request(:post, 'http://datastore/records')
        .to_return(body: {
          field_errors: [{
            code: 'UNSUPPORTED_PROPERTY_VALUE',
            path: ['gender'],
            message: 'The property value is unsupported.'
          }, {
            code: 'INCOMPLETE_PROPERTY_VALUE',
            path: ['gender'],
            message: 'The property value is incomplete. It misses some data'
          }, {
            code: 'INCOMPLETE_PROPERTY_VALUE',
            path: %w[contract entry_id],
            message: 'The property value is incomplete. It misses some data'
          }]
        }.to_json)
      record = Record.create
      expect(record.errors.messages['gender']).to eq(
        ['This value is wrong', 'This value is wrong']
      )
      expect(record.errors.codes['gender']).to eq(
        %w[UNSUPPORTED_PROPERTY_VALUE INCOMPLETE_PROPERTY_VALUE]
      )
      expect(record.errors.messages['contract.entry_id']).to eq(
        ['This value is wrong']
      )
      expect(record.errors.codes['contract.entry_id']).to eq(
        ['INCOMPLETE_PROPERTY_VALUE']
      )
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
dhs-1.6.0 spec/item/error_codes_spec.rb
dhs-1.5.0 spec/item/error_codes_spec.rb
dhs-1.4.2 spec/item/error_codes_spec.rb
dhs-1.4.1 spec/item/error_codes_spec.rb
dhs-1.4.0 spec/item/error_codes_spec.rb
dhs-1.3.0 spec/item/error_codes_spec.rb
dhs-1.2.0 spec/item/error_codes_spec.rb
dhs-1.1.0 spec/item/error_codes_spec.rb
dhs-1.0.3 spec/item/error_codes_spec.rb
dhs-1.0.2 spec/item/error_codes_spec.rb
dhs-1.0.1 spec/item/error_codes_spec.rb
dhs-1.0.0 spec/item/error_codes_spec.rb