Sha256: 054427c5787e66c4a2e71f65ae30b6a09e1413ae8736e0b60f27e81b4f79b64a

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

require 'spec_helpers/client'

RSpec.describe FinApps::REST::OrderRefreshes do
  include SpecHelpers::Client
  subject { described_class.new(client) }

  describe '#create' do
    context 'when missing id' do
      let(:create) { subject.create(nil) }

      it do
        expect { create }.to raise_error(FinAppsCore::MissingArgumentsError)
      end
    end

    context 'when valid id is provided' do
      let(:create) { subject.create(:valid_id) }

      it { expect { create }.not_to raise_error }
      it('returns an array') { expect(create).to be_a(Array) }

      it('performs a post and returns new refreshed order response') do
        expect(create[RESULTS]).to have_key(:public_id)
        expect(create[RESULTS]).to have_key(:original_order_id)
      end

      it('returns no error messages') do
        expect(create[ERROR_MESSAGES]).to be_empty
      end
    end

    context 'when invalid id is provided' do
      let(:create) { subject.create(:invalid_id) }

      it { expect { create }.not_to raise_error }
      it('returns an array') { expect(create).to be_a(Array) }
      it('results is nil') { expect(create[RESULTS]).to be_nil }

      it('error messages array is populated') do
        expect(create[ERROR_MESSAGES].first.downcase).to eq(
          'resource not found'
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
finapps-5.0.34 spec/rest/order_refreshes_spec.rb
finapps-5.0.33 spec/rest/order_refreshes_spec.rb