Sha256: bc68ab856576e7e99b6acc291679729bc6d84961c8cb8429a8db6730c4cb187d

Contents?: true

Size: 1.6 KB

Versions: 24

Compression:

Stored size: 1.6 KB

Contents

require 'rails_helper'

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

    let(:translation) do
      %q{
        lhs:
          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: ['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(
        ['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

24 entries across 24 versions & 1 rubygems

Version Path
lhs-15.3.1 spec/item/error_codes_spec.rb
lhs-15.3.1.pre.fixlhc.1 spec/item/error_codes_spec.rb
lhs-15.3.0 spec/item/error_codes_spec.rb
lhs-15.2.5 spec/item/error_codes_spec.rb
lhs-15.2.4 spec/item/error_codes_spec.rb
lhs-15.2.3 spec/item/error_codes_spec.rb
lhs-15.2.3.pre.favorites.1 spec/item/error_codes_spec.rb
lhs-15.2.2.pre.favorites.1 spec/item/error_codes_spec.rb
lhs-15.2.2 spec/item/error_codes_spec.rb
lhs-15.2.1 spec/item/error_codes_spec.rb
lhs-15.2.0 spec/item/error_codes_spec.rb
lhs-15.1.1 spec/item/error_codes_spec.rb
lhs-15.1.0 spec/item/error_codes_spec.rb
lhs-15.0.2 spec/item/error_codes_spec.rb
lhs-15.0.1 spec/item/error_codes_spec.rb
lhs-15.0.0 spec/item/error_codes_spec.rb
lhs-14.6.5 spec/item/error_codes_spec.rb
lhs-14.6.4 spec/item/error_codes_spec.rb
lhs-14.6.3 spec/item/error_codes_spec.rb
lhs-14.6.2 spec/item/error_codes_spec.rb