finapps 3.0.5 → 3.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5832c50a004c69f1977e569d3b2fc59a7a51fc0
4
- data.tar.gz: 91fe3bc25890a4b41e2db61436726c18b58691ef
3
+ metadata.gz: 4e38cb6fd3d79fa7ff674427f2c384fd4bb69d46
4
+ data.tar.gz: 79957e78dafa38959c66762eb37083b6215eb3b9
5
5
  SHA512:
6
- metadata.gz: d577abbe766b864813732da42ccc9817bdb15aa71b3ef745b9dc3924433ec2f7d8cd5d98ed1e62e2926ea20a4dd4c0778f9e61f3fb6a9c61ae2fe7f53e37a73f
7
- data.tar.gz: fa8a00965774637f11cb4f72a92bfc68a1bec47fe15e010a74adbadcab28ae0cfad845656b243ab2abee2233ba897f292961f9f35c60c74fadc12a5544911a76
6
+ metadata.gz: a607f74e179b5ddadea37fd2dd3ed2243012a5f1417f8abf1fb0977e06d7f016b01d18f4182e98737112c105aa14225b43246c40b900fe5962b8d81f0c89d69a
7
+ data.tar.gz: be14e5dea2ce8d6e64f9af8883b0b27e1920ddc4d0611a7b5cf14e6690b4fcf016c9b2a4275dc95e1fb6f867ae6d4bc8fb907cb9ebd7fa5b9b887b0cb1cb4c4c
@@ -5,6 +5,11 @@ module FinApps
5
5
  class Consumers < FinAppsCore::REST::Resources # :nodoc:
6
6
  # @param [String] public_id
7
7
  # @return [FinApps::REST::User, Array<String>]
8
+ def create(params)
9
+ not_blank(params, :params)
10
+ super params
11
+ end
12
+
8
13
  def show(public_id)
9
14
  not_blank(public_id, :public_id)
10
15
  super public_id
@@ -3,15 +3,20 @@
3
3
  module FinApps
4
4
  module REST
5
5
  class Sessions < FinAppsCore::REST::Resources # :nodoc:
6
- # @param [Hash] params
7
- # @return [Array<String>]
6
+ LOGOUT = 'logout'
7
+
8
8
  def create(params, path=nil)
9
+ return super nil, path if path == LOGOUT
9
10
  raise FinAppsCore::InvalidArgumentsError.new 'Invalid argument: params.' unless validates params
10
11
  path ||= 'login'
11
12
 
12
13
  super params, path
13
14
  end
14
15
 
16
+ def destroy
17
+ create nil, LOGOUT
18
+ end
19
+
15
20
  private
16
21
 
17
22
  def validates(params)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '3.0.5'
4
+ VERSION = '3.0.6'
5
5
  end
@@ -6,6 +6,32 @@ RSpec.describe FinApps::REST::Consumers, 'initialized with valid FinApps::Client
6
6
  subject(:users) { FinApps::REST::Consumers.new(client) }
7
7
  missing_public_id = 'Missing argument: public_id'
8
8
 
9
+ describe '#create' do
10
+ let(:results) { create[0] }
11
+ let(:error_messages) { create[1] }
12
+
13
+ context 'when missing params' do
14
+ it { expect { subject.create(nil) }.to raise_error(FinAppsCore::MissingArgumentsError) }
15
+ end
16
+
17
+ context 'for valid params' do
18
+ let(:create) { subject.create(email: 'email', password: 'password') }
19
+
20
+ it { expect { create }.not_to raise_error }
21
+ it('results is a Hashie::Rash') { expect(results).to be_a(Hashie::Mash::Rash) }
22
+ it('performs a post and returns the response') { expect(results).to respond_to(:public_id) }
23
+ it('error_messages array is empty') { expect(error_messages).to eq([]) }
24
+ end
25
+
26
+ context 'for invalid params' do
27
+ let(:create) { subject.create(email: 'email') }
28
+
29
+ it { expect { create }.not_to raise_error }
30
+ it('results is nil') { expect(results).to be_nil }
31
+ it('error messages array is populated') { expect(error_messages.first.downcase).to eq('invalid request body') }
32
+ end
33
+ end
34
+
9
35
  describe '#show' do
10
36
  context 'when missing public_id' do
11
37
  it { expect { subject.show(nil) }.to raise_error(FinAppsCore::MissingArgumentsError, missing_public_id) }
@@ -4,9 +4,9 @@ require 'spec_helpers/client'
4
4
 
5
5
  RSpec.describe FinApps::REST::Sessions, 'initialized with valid FinApps::Client object' do
6
6
  include SpecHelpers::Client
7
+ subject { FinApps::REST::Sessions.new(client) }
7
8
 
8
9
  describe '#create' do
9
- subject { FinApps::REST::Sessions.new(client) }
10
10
  let(:create) { subject.create(credentials) }
11
11
  let(:results) { create[0] }
12
12
  let(:error_messages) { create[1] }
@@ -50,4 +50,14 @@ RSpec.describe FinApps::REST::Sessions, 'initialized with valid FinApps::Client
50
50
  it('error_messages is empty') { expect(error_messages).to be_empty }
51
51
  end
52
52
  end
53
+
54
+ describe '#destroy' do
55
+ let(:destroy) { subject.destroy }
56
+ let(:results) { destroy[0] }
57
+ let(:error_messages) { destroy[1] }
58
+
59
+ it { expect { destroy }.not_to raise_error }
60
+ it('results is nil') { expect(results).to be_nil }
61
+ it('error_messages array is empty') { expect(error_messages).to eq([]) }
62
+ end
53
63
  end
@@ -77,12 +77,22 @@ class FakeApi < Sinatra::Base
77
77
  # consumers
78
78
  get('/v3/consumers/valid_public_id') { json_response 200, 'user.json' }
79
79
  get('/v3/consumers/invalid_public_id') { json_response 404, 'resource_not_found.json' }
80
+ post('/v3/consumers') do
81
+ request.body.rewind
82
+ request_payload = JSON.parse request.body.read
83
+ if request_payload['password']
84
+ json_response 201, 'user.json'
85
+ else
86
+ json_response 400, 'invalid_request_body.json'
87
+ end
88
+ end
80
89
  put('/v3/consumers/valid_public_id') { status 204 }
81
90
  put('/v3/consumers/invalid_public_id') { json_response 400, 'invalid_user_id.json' }
82
91
  put('/v3/consumers/valid_public_id/password') { json_response 200, 'user.json' }
83
92
  put('/v3/consumers/invalid_public_id/password') { json_response 404, 'resource_not_found.json' }
84
93
  delete('/v3/consumers/valid_public_id') { status 204 }
85
94
  delete('/v3/consumers/invalid_public_id') { json_response 404, 'resource_not_found.json' }
95
+ post('/v3/logout') { status 204 }
86
96
 
87
97
  # accounts
88
98
  get('/v3/accounts/valid_id/statement/valid_id') { json_response 200, 'fake_pdf_statement.json' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finapps
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-22 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -321,29 +321,29 @@ signing_key:
321
321
  specification_version: 4
322
322
  summary: FinApps REST API ruby client.
323
323
  test_files:
324
- - spec/rest/institutions_spec.rb
325
- - spec/rest/consumer_institution_refreshes_spec.rb
326
- - spec/rest/order_assignments_spec.rb
327
- - spec/rest/user_institutions_forms_spec.rb
328
- - spec/rest/client_spec.rb
324
+ - spec/rest/operators_password_resets_spec.rb
325
+ - spec/rest/products_spec.rb
326
+ - spec/rest/statements_spec.rb
329
327
  - spec/rest/version_spec.rb
330
- - spec/rest/password_resets_spec.rb
331
- - spec/rest/operators_spec.rb
332
- - spec/rest/order_statuses_spec.rb
333
- - spec/rest/order_reports_spec.rb
328
+ - spec/rest/user_institutions_forms_spec.rb
334
329
  - spec/rest/consumers_spec.rb
335
- - spec/rest/sessions_spec.rb
336
- - spec/rest/user_institutions_statuses_spec.rb
337
330
  - spec/rest/orders_spec.rb
338
- - spec/rest/operators_password_resets_spec.rb
331
+ - spec/rest/order_tokens_spec.rb
339
332
  - spec/rest/institutions_forms_spec.rb
333
+ - spec/rest/operators_spec.rb
334
+ - spec/rest/user_institutions_statuses_spec.rb
335
+ - spec/rest/client_spec.rb
336
+ - spec/rest/user_institutions_spec.rb
337
+ - spec/rest/consumer_institution_refreshes_spec.rb
338
+ - spec/rest/password_resets_spec.rb
339
+ - spec/rest/order_reports_spec.rb
340
+ - spec/rest/institutions_spec.rb
341
+ - spec/rest/order_statuses_spec.rb
340
342
  - spec/rest/order_refreshes_spec.rb
341
343
  - spec/rest/order_notifications_spec.rb
342
- - spec/rest/statements_spec.rb
343
- - spec/rest/order_tokens_spec.rb
344
- - spec/rest/user_institutions_spec.rb
345
- - spec/rest/products_spec.rb
346
- - spec/utils/query_builder_spec.rb
344
+ - spec/rest/order_assignments_spec.rb
345
+ - spec/rest/sessions_spec.rb
347
346
  - spec/support/fake_api.rb
348
- - spec/spec_helper.rb
347
+ - spec/utils/query_builder_spec.rb
349
348
  - spec/spec_helpers/client.rb
349
+ - spec/spec_helper.rb