Sha256: 4c998ad87606a4a662531afe54da552c814ca1fcb6d9b7d7ac6598f208b8c52b

Contents?: true

Size: 1.6 KB

Versions: 19

Compression:

Stored size: 1.6 KB

Contents

require 'rails_helper'

describe LHS::Item do
  context 'error codes' do
    before 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

19 entries across 19 versions & 1 rubygems

Version Path
lhs-16.1.5 spec/item/error_codes_spec.rb
lhs-16.1.4 spec/item/error_codes_spec.rb
lhs-16.1.3 spec/item/error_codes_spec.rb
lhs-16.1.2 spec/item/error_codes_spec.rb
lhs-16.1.1 spec/item/error_codes_spec.rb
lhs-16.1.0 spec/item/error_codes_spec.rb
lhs-16.0.1 spec/item/error_codes_spec.rb
lhs-16.0.0 spec/item/error_codes_spec.rb
lhs-15.7.0 spec/item/error_codes_spec.rb
lhs-15.6.1 spec/item/error_codes_spec.rb
lhs-15.6.0 spec/item/error_codes_spec.rb
lhs-15.5.1 spec/item/error_codes_spec.rb
lhs-15.5.0 spec/item/error_codes_spec.rb
lhs-15.4.1 spec/item/error_codes_spec.rb
lhs-15.4.0 spec/item/error_codes_spec.rb
lhs-15.4.0.pre.hasone.1 spec/item/error_codes_spec.rb
lhs-15.3.3 spec/item/error_codes_spec.rb
lhs-15.3.3.pre.fixoptions.1 spec/item/error_codes_spec.rb
lhs-15.3.2 spec/item/error_codes_spec.rb