spec/rest/consumers_spec.rb in finapps-5.0.32 vs spec/rest/consumers_spec.rb in finapps-5.0.33
- old
+ new
@@ -2,11 +2,12 @@
require 'spec_helpers/client'
RSpec.describe FinApps::REST::Consumers,
'initialized with valid FinApps::Client object' do
include SpecHelpers::Client
- subject(:users) { FinApps::REST::Consumers.new(client) }
+ subject(:users) { described_class.new(client) }
+
missing_public_id = ': public_id'
describe '#create' do
let(:results) { create[0] }
let(:error_messages) { create[1] }
@@ -22,21 +23,24 @@
context 'for valid params' do
let(:create) { subject.create(email: 'email', password: 'password') }
it { expect { create }.not_to raise_error }
it('results is a Hash') { expect(results).to be_a(Hash) }
+
it('performs a post and returns the response') do
expect(results).to have_key(:public_id)
end
+
it('error_messages array is empty') { expect(error_messages).to eq([]) }
end
context 'for invalid params' do
let(:create) { subject.create(email: 'email') }
it { expect { create }.not_to raise_error }
it('results is nil') { expect(results).to be_nil }
+
it('error messages array is populated') do
expect(error_messages.first.downcase).to eq('invalid request body')
end
end
end
@@ -46,14 +50,17 @@
let(:results) { list[0] }
let(:error_messages) { list[1] }
context 'when missing params' do
let(:params) { nil }
- it { expect { list }.to_not raise_error }
+
+ it { expect { list }.not_to raise_error }
+
it('performs a get and returns the response') do
expect(results).to have_key(:records)
end
+
it('returns an array of records') { expect(results[:records]).to be_a(Array) }
it('returns no error messages') { expect(error_messages).to be_empty }
end
context 'when invalid params are provided' do
@@ -68,18 +75,21 @@
page: 3,
requested: 19
}
end
- it { expect { list }.to_not raise_error }
+ it { expect { list }.not_to raise_error }
it('returns an array') { expect(list).to be_a(Array) }
+
it('performs a get and returns the response') do
expect(results).to have_key(:records)
end
+
it('returns no error messages') do
expect(error_messages).to be_empty
end
+
it 'builds query and sends proper request' do
list
url = "#{versioned_api_path}/consumers?page=3&requested=19"
expect(WebMock).to have_requested(:get, url)
end
@@ -93,23 +103,28 @@
requested: 25,
searchTerm: 'term'
}
end
- it { expect { list }.to_not raise_error }
+ it { expect { list }.not_to raise_error }
it('returns an array') { expect(list).to be_a(Array) }
+
it('performs a get and returns the response') do
expect(results).to have_key(:records)
end
+
it('returns no error messages') do
expect(error_messages).to be_empty
end
+
it 'builds query and sends proper request' do
list
- url = "#{versioned_api_path}/consumers?filter=%7B%22$or%22:%5B%7B%22email%22:%22term%22%7D," \
- '%7B%22first_name%22:%22term%22%7D,%7B%22last_name%22:%22term%22%7D%5D%7D&page=2&requested=25' \
- '&sort=date_created'
+ url = "#{versioned_api_path}/consumers?"\
+ 'filter=%7B%22$or%22:%5B%7B%22email%22:%22term%22%7D,' \
+ '%7B%22first_name%22:%22term%22%7D,'\
+ '%7B%22last_name%22:%22term%22%7D%5D%7D&page=2&requested=25' \
+ '&sort=date_created'
expect(WebMock).to have_requested(:get, url)
end
context 'when search term contains a space' do
let(:params) do
@@ -118,16 +133,20 @@
sort: 'date_created',
requested: 25,
searchTerm: 'Two terms'
}
end
+
it 'treats space as start of a new query for first and last name' do
list
- url = "#{versioned_api_path}/consumers?filter=%7B%22$or%22:%5B%7B%22email%22:%22Two%20terms%22%7D,"\
- '%7B%22first_name%22:%22Two%20terms%22%7D,%7B%22last_name%22:%22Two%20terms%22%7D,%7B%22first_name%22:'\
- '%22Two%22%7D,%7B%22last_name%22:%22Two%22%7D,%7B%22first_name%22:%22terms%22%7D,%7B%22last_name%22:'\
- '%22terms%22%7D%5D%7D&page=2&requested=25&sort=date_created'
+ url = "#{versioned_api_path}/consumers?"\
+ 'filter=%7B%22$or%22:%5B%7B%22email%22:%22Two%20terms%22%7D,'\
+ '%7B%22first_name%22:%22Two%20terms%22%7D,'\
+ '%7B%22last_name%22:%22Two%20terms%22%7D,%7B%22first_name%22:'\
+ '%22Two%22%7D,%7B%22last_name%22:%22Two%22%7D,'\
+ '%7B%22first_name%22:%22terms%22%7D,%7B%22last_name%22:'\
+ '%22terms%22%7D%5D%7D&page=2&requested=25&sort=date_created'
expect(WebMock).to have_requested(:get, url)
end
end
end
end
@@ -147,23 +166,26 @@
let(:results) { show[0] }
let(:error_messages) { show[1] }
it { expect { show }.not_to raise_error }
it('results is a Hash') { expect(results).to be_a(Hash) }
+
it('performs a get and returns the response') do
expect(results).to have_key(:public_id)
end
+
it('error_messages array is empty') { expect(error_messages).to eq([]) }
end
context 'for invalid token' do
let(:show) { subject.show(:invalid_public_id) }
let(:results) { show[0] }
let(:error_messages) { show[1] }
it { expect { show }.not_to raise_error }
it('results is nil') { expect(results).to be_nil }
+
it('error messages array is populated') do
expect(error_messages.first.downcase).to eq('resource not found')
end
end
end
@@ -196,10 +218,11 @@
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') do
expect(error_messages.first.downcase).to eq(
'invalid user id specified.'
)
end
@@ -217,16 +240,19 @@
let(:results) { update[0] }
let(:error_messages) { update[1] }
it { expect { update }.not_to raise_error }
it('results is a Hash') { expect(results).to be_a(Hash) }
+
it('the public_id is on the results') do
expect(results).to have_key(:public_id)
end
+
it('the new token is on the results') do
expect(results).to have_key(:token)
end
+
it('error_messages array is empty') { expect(error_messages).to eq([]) }
end
context 'for invalid public_id' do
let(:update) do
@@ -238,10 +264,11 @@
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') do
expect(error_messages.first.downcase).to eq('resource not found')
end
end
end
@@ -271,9 +298,10 @@
let(:results) { destroy[0] }
let(:error_messages) { destroy[1] }
it { expect { destroy }.not_to raise_error }
it('results is nil') { expect(results).to be_nil }
+
it('error messages array is populated') do
expect(error_messages.first.downcase).to eq('resource not found')
end
end
end