spec/rest/orders_spec.rb in finapps-2.0.27 vs spec/rest/orders_spec.rb in finapps-2.0.28

- old
+ new

@@ -10,21 +10,57 @@ context 'when valid params are provided' do subject { FinApps::REST::Orders.new(client).show(:id) } it { expect { subject }.not_to raise_error } it('returns an array') { expect(subject).to be_a(Array) } + it('performs a get and returns the response') { expect(subject[0]).to respond_to(:public_id) } + it('returns no error messages') { expect(subject[1]).to be_empty } + end + end + + describe '#create' do + context 'when missing params' do + subject { FinApps::REST::Orders.new(client).create(nil) } + it { expect { subject }.to raise_error(FinApps::MissingArgumentsError) } + end + + context 'when valid params are provided' do + subject { FinApps::REST::Orders.new(client).create(valid_params) } + let(:valid_params) { {applicant: 'valid', institutions: 'valid', product: 'valid'} } + + it { expect { subject }.not_to raise_error } + it('returns an array') { expect(subject).to be_a(Array) } it('performs a post and returns the response') { expect(subject[0]).to respond_to(:public_id) } it('returns no error messages') { expect(subject[1]).to be_empty } end + + context 'when invalid params are provided' do + subject { FinApps::REST::Orders.new(client).create(invalid_params) } + let(:invalid_params) { {applicant: 'valid'} } + + it { expect { subject }.not_to raise_error } + it('results is nil') { expect(subject[0]).to be_nil } + it('error messages array is populated') { expect(subject[1].first.downcase).to eq('invalid request body') } + end end describe '#list' do context 'when missing params' do # use defaults subject { FinApps::REST::Orders.new(client).list(nil) } it { expect { subject }.not_to raise_error } + it('returns an array') { expect(subject).to be_a(Array) } + it('performs a get and returns the response') { expect(subject[0]).to respond_to(:orders) } + it('returns no error messages') { expect(subject[1]).to be_empty } + end + + context 'when including partial params' do + subject { FinApps::REST::Orders.new(client).list(params) } + let(:params) { {page: 2, sort: 'status'} } + + it { expect { subject }.not_to raise_error } it('returns an array') { expect(subject).to be_a(Array) } it('performs a get and returns the response') { expect(subject[0]).to respond_to(:orders) } it('returns no error messages') { expect(subject[1]).to be_empty } end end