Sha256: 61707a032e5e2ca2da17f749f1eb3cab2cc731165da40966e09560645b0b0df6

Contents?: true

Size: 1.63 KB

Versions: 19

Compression:

Stored size: 1.63 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:
          warnings:
            fallback_message: 'This value is problematic'
      }
    end

    it 'provides error codes along side with translated messages' do
      stub_request(:post, 'http://datastore/records')
        .to_return(body: {
          field_warnings: [{
            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.warnings.messages['gender']).to eq(
        ['This value is problematic', 'This value is problematic']
      )
      expect(record.warnings.codes['gender']).to eq(
        ['UNSUPPORTED_PROPERTY_VALUE', 'INCOMPLETE_PROPERTY_VALUE']
      )
      expect(record.warnings.messages['contract.entry_id']).to eq(
        ['This value is problematic']
      )
      expect(record.warnings.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/warning_codes_spec.rb
lhs-16.1.4 spec/item/warning_codes_spec.rb
lhs-16.1.3 spec/item/warning_codes_spec.rb
lhs-16.1.2 spec/item/warning_codes_spec.rb
lhs-16.1.1 spec/item/warning_codes_spec.rb
lhs-16.1.0 spec/item/warning_codes_spec.rb
lhs-16.0.1 spec/item/warning_codes_spec.rb
lhs-16.0.0 spec/item/warning_codes_spec.rb
lhs-15.7.0 spec/item/warning_codes_spec.rb
lhs-15.6.1 spec/item/warning_codes_spec.rb
lhs-15.6.0 spec/item/warning_codes_spec.rb
lhs-15.5.1 spec/item/warning_codes_spec.rb
lhs-15.5.0 spec/item/warning_codes_spec.rb
lhs-15.4.1 spec/item/warning_codes_spec.rb
lhs-15.4.0 spec/item/warning_codes_spec.rb
lhs-15.4.0.pre.hasone.1 spec/item/warning_codes_spec.rb
lhs-15.3.3 spec/item/warning_codes_spec.rb
lhs-15.3.3.pre.fixoptions.1 spec/item/warning_codes_spec.rb
lhs-15.3.2 spec/item/warning_codes_spec.rb