spec/rest/orders_spec.rb in finapps-2.0.20 vs spec/rest/orders_spec.rb in finapps-2.0.21

- old
+ new

@@ -27,6 +27,51 @@ 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 + + describe '#update' do + subject(:orders) { FinApps::REST::Orders.new(client) } + + context 'when missing id' do + let(:update) { subject.update(nil, :params) } + it ('returns missing argument error') { expect { update }.to raise_error(FinApps::MissingArgumentsError) } + end + + context 'when missing params' do + let(:update) { subject.update(:id, nil) } + it ('returns missing argument error') { expect { update }.to raise_error(FinApps::MissingArgumentsError) } + end + + context 'when valid id and params are provided' do + let(:update) { subject.update('valid_id', {accounts: 'valid_account'}) } #how to stub params + let(:results) { update[0] } + let(:error_messages) { update[1] } + + it { expect { update }.not_to raise_error } + it('results is nil') { expect(results).to be_nil } + it('error_messages array is empty') { expect(error_messages).to eq([]) } + end + + context 'when invalid id is provided' do + let(:update) { subject.update('invalid_id', :params) } + let(:results) { update[0] } + let(:error_messages) { update[1] } + + it { expect { update }.not_to raise_error } + it('results is nil') { expect(results).to be_nil } + it('error messages array is populated') { expect(error_messages.first.downcase).to eq('resource not found') } + end + + context 'when invalid params are provided' do + let(:update) { subject.update('valid_id', {accounts: 'invalid_account'}) } + let(:results) { update[0] } + let(:error_messages) { update[1] } + + it { expect { update }.not_to raise_error } + it('results is nil') { expect(results).to be_nil } + it('error messages array is populated') { expect(error_messages.first.downcase).to eq('invalid request body') } + + end + end end