finapps 5.0.47 → 5.4.0

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
  SHA256:
3
- metadata.gz: 487960017ebcda19c22179e090cb9328708a57dd5e54e0d05cc27e5660251d57
4
- data.tar.gz: 95abe37a2a66f36f973eb453d2302df92a9d1208c2ad5f20b4b6caf21737c358
3
+ metadata.gz: e65bb80fb054553a018a117ef278f51ca1f39cae1c51b32951c1c23b66456ae9
4
+ data.tar.gz: 98365bd10401bd230e3884d626f7a305bd331c02497445fa25484ba09ba14b42
5
5
  SHA512:
6
- metadata.gz: 5df1695cc14dc3a96d47867786a7f564806b5f58d56511c9e08482e3e9ce4767ac03257c055f644b2517d25666a70d0b6312f43fd218607258c642d967061a98
7
- data.tar.gz: 9f063fed1bafb02f77ed3b10230c77d757e0ae09c0f7d202f9d78d699dc1d7ba5f0809d59591f608c32aa9c81d86795b932ab5220d0adc13fcea07b2583c4d26
6
+ metadata.gz: e64cf1d45c0895165c6d7a47a8e762c3fba2c8925f16177dca3702853aff83834e9296be6942bc6025a7a22fc472dd4c44a9db9d7da079777a0c6e51e7c76a44
7
+ data.tar.gz: 3203972fa2e7001d4f099b8668368d263f253848e0b8d85ed6bba7dd9034c5344db5d15ca310f8daedeecc04d088a36c1332cb28f58460c6015cae1e2ae899da
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "daily"
@@ -1,9 +1,16 @@
1
1
  name: Continuous Integration
2
2
 
3
- on: [push, pull_request]
4
-
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - ".github/**"
7
+ - ".VERSION"
8
+ pull_request:
9
+ paths-ignore:
10
+ - ".github/**"
11
+ - ".VERSION"
5
12
  jobs:
6
- ci:
13
+ tests:
7
14
  if: "!contains(github.event.head_commit.message, 'skip ci')"
8
15
  runs-on: ubuntu-latest
9
16
 
@@ -11,26 +18,30 @@ jobs:
11
18
  fail-fast: true
12
19
 
13
20
  steps:
14
- - uses: actions/checkout@v1
21
+ - name: Checkout source code
22
+ uses: actions/checkout@v2
15
23
 
16
24
  - name: Install required ruby
17
25
  uses: ruby/setup-ruby@v1
18
26
 
19
- - uses: actions/cache@v2
27
+ - name: Setup cache key and directory for gems cache
28
+ uses: actions/cache@v2.1.4
20
29
  with:
21
30
  path: vendor/bundle
22
31
  key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
23
32
  restore-keys: |
24
33
  ${{ runner.os }}-gems-
25
34
 
26
- - name: Install gems
35
+ - name: Bundle install
27
36
  run: |
28
- gem install -N bundler
29
37
  bundle config path vendor/bundle
30
- bundle install --jobs 4 --retry 3
38
+ bundle config set jobs 4
39
+ bundle config set retry 3
40
+ bundle install
31
41
 
32
42
  - name: Run rubocop
33
- run: bundle exec rubocop
43
+ run: |
44
+ bundle exec rubocop --parallel
34
45
 
35
46
  - name: Run tests
36
47
  run: bundle exec rspec
@@ -2,53 +2,53 @@ name: Bump version and Release
2
2
  on:
3
3
  release:
4
4
  types: [published]
5
-
5
+
6
6
  jobs:
7
7
  release:
8
8
  runs-on: ubuntu-latest
9
9
  strategy:
10
10
  fail-fast: true
11
11
 
12
- steps:
13
- - uses: actions/checkout@master
14
- with:
15
- persist-credentials: false
16
- fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
12
+ steps:
13
+ - name: Checkout source code
14
+ uses: actions/checkout@v2
15
+ with:
16
+ persist-credentials: false
17
+ fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
18
+
19
+ - name: Install required ruby version
20
+ uses: ruby/setup-ruby@v1
21
+
22
+ - name: Get version from latest tag
23
+ id: get_version
24
+ uses: battila7/get-version-action@v2
25
+
26
+ - name: Bump version
27
+ run: |
28
+ gem install -N gem-release
29
+ git config --local user.email "action@github.com"
30
+ git config --local user.name "GitHub Action"
31
+ gem bump --skip-ci --version ${{ steps.get_version.outputs.version-without-v }}
17
32
 
18
- - uses: actions/setup-ruby@v1
19
- with:
20
- ruby-version: '2.6'
21
-
22
- - name: Get version from latest tag
23
- id: get_version
24
- uses: battila7/get-version-action@v2
33
+ - name: Push changes
34
+ uses: ad-m/github-push-action@master
35
+ with:
36
+ # GitHub Actions token does not support pushing to protected branches.
37
+ # github_token: ${{ secrets.GITHUB_TOKEN }}
38
+ #
39
+ # A manually populated`PERSONAL_ACCESS_TOKEN` environment variable
40
+ # with permissions to push to a protected branch must be used.
41
+ # not ideal - keep eyes open for a better solution
42
+ github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
25
43
 
26
- - name: Bump version
27
- run: |
28
- gem install -N gem-release
29
- git config --local user.email "action@github.com"
30
- git config --local user.name "GitHub Action"
31
- gem bump --skip-ci --version ${{ steps.get_version.outputs.version-without-v }}
32
-
33
- - name: Push changes
34
- uses: ad-m/github-push-action@master
35
- with:
36
- # GitHub Actions token does not support pushing to protected branches.
37
- # github_token: ${{ secrets.GITHUB_TOKEN }}
38
- #
39
- # A manually populated`PERSONAL_ACCESS_TOKEN` environment variable
40
- # with permissions to push to a protected branch must be used.
41
- # not ideal - keep eyes open for a better solution
42
- github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
43
-
44
- - name: Release gem to rubygems.org
45
- run: |
46
- set +x
47
- mkdir -p ~/.gem
48
- cat << EOF > ~/.gem/credentials
49
- ---
50
- :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
51
- EOF
52
- chmod 0600 ~/.gem/credentials
53
- set -x
54
- gem release
44
+ - name: Release gem to rubygems.org
45
+ run: |
46
+ set +x
47
+ mkdir -p ~/.gem
48
+ cat << EOF > ~/.gem/credentials
49
+ ---
50
+ :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
51
+ EOF
52
+ chmod 0600 ~/.gem/credentials
53
+ set -x
54
+ gem release
data/.rubocop.yml CHANGED
@@ -48,7 +48,7 @@ Metrics/ClassLength:
48
48
  - app/controllers/orders_controller.rb
49
49
  - app/models/order.rb
50
50
  Metrics/BlockLength:
51
- ExcludedMethods: ['describe', 'context']
51
+ IgnoredMethods: ['describe', 'context']
52
52
  Exclude:
53
53
  - config/environments/**/**
54
54
  - Guardfile
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.6.3
1
+ ruby-2.7.2
data/Guardfile CHANGED
@@ -17,7 +17,7 @@
17
17
  #
18
18
  # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
19
19
 
20
- # Note: The cmd option is now required due to the increasing number of ways
20
+ # NOTE: The cmd option is now required due to the increasing number of ways
21
21
  # rspec may be run, below are examples of the most common uses.
22
22
  # * bundler: 'bundle exec rspec'
23
23
  # * bundler binstubs: 'bin/rspec'
data/finapps.gemspec CHANGED
@@ -20,19 +20,20 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = Dir['spec/**/*.rb']
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_runtime_dependency 'finapps_core', '~> 5.0', '>= 5.0.13'
23
+ spec.add_runtime_dependency 'finapps_core', '~> 5.0', '>= 5.0.15'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.2'
26
26
  spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.9'
27
27
  spec.add_development_dependency 'guard', '~> 2.16', '>= 2.16.1'
28
28
  spec.add_development_dependency 'guard-rspec', '~> 4.7', '>= 4.7.3'
29
29
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
30
- spec.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
31
- spec.add_development_dependency 'rubocop', '~> 0.87', '>= 0.87.0'
32
- spec.add_development_dependency 'rubocop-performance', '~> 1.7', '>= 1.7.0'
33
- spec.add_development_dependency 'rubocop-rspec', '~> 1.41', '>= 1.41.0'
34
- spec.add_development_dependency 'sinatra', '~> 2.0', '>= 2.0.8'
35
- spec.add_development_dependency 'webmock', '~> 3.8', '>= 3.8.0'
30
+ spec.add_development_dependency 'rspec', '~> 3.10', '>= 3.10.0'
31
+ spec.add_development_dependency 'rubocop', '~> 1.9', '>= 1.9.1'
32
+ spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
33
+ spec.add_development_dependency 'rubocop-rake', '~> 0.5', '>= 0.5.1'
34
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.2', '>= 2.2.0'
35
+ spec.add_development_dependency 'sinatra', '~> 2.1', '>= 2.1.0'
36
+ spec.add_development_dependency 'webmock', '~> 3.11', '>= 3.11.2'
36
37
 
37
38
  spec.extra_rdoc_files = %w[README.md LICENSE.txt]
38
39
  spec.rdoc_options = %w[--line-numbers --inline-source --title finapps-ruby --main README.md]
@@ -83,7 +83,7 @@ module FinApps
83
83
 
84
84
  def camelize(term)
85
85
  string = term.to_s
86
- string = string.sub(/^[a-z\d]*/) { $&.capitalize }
86
+ string = string.sub(/^[a-z\d]*/) { Regexp.last_match(0).capitalize }
87
87
  string.gsub(%r{(?:_|(/))([a-z\d]*)}) do
88
88
  Regexp.last_match(2).capitalize.to_s
89
89
  end
@@ -62,9 +62,10 @@ module FinApps
62
62
 
63
63
  def with_space_search(term)
64
64
  [
65
- {"email": term},
66
- {"first_name": term},
67
- {"last_name": term}
65
+ {external_id: term},
66
+ {email: term},
67
+ {first_name: term},
68
+ {last_name: term}
68
69
  ]
69
70
  end
70
71
 
@@ -72,8 +73,8 @@ module FinApps
72
73
  search_arr = []
73
74
  if /\s/.match?(term)
74
75
  term.split.each do |t|
75
- search_arr.append("first_name": t)
76
- search_arr.append("last_name": t)
76
+ search_arr.append(first_name: t)
77
+ search_arr.append(last_name: t)
77
78
  end
78
79
  end
79
80
  search_arr
@@ -90,22 +90,21 @@ module FinApps
90
90
  end
91
91
 
92
92
  def with_space_search(term)
93
- [
94
- {"applicant.email": term},
95
- {"applicant.first_name": term},
96
- {"applicant.last_name": term},
97
- {
98
- "reference_no": {
99
- "$regex": "^#{term}", "$options": 'i'
100
- }
101
- }
102
- ]
93
+ [{"applicant.email": term},
94
+ {"applicant.first_name": term},
95
+ {"applicant.last_name": term},
96
+ {"applicant.external_id": term},
97
+ {
98
+ reference_no: {
99
+ "$regex": "^#{term}", "$options": 'i'
100
+ }
101
+ }]
103
102
  end
104
103
 
105
104
  def tag_query(tag)
106
105
  return {} unless tag
107
106
 
108
- {"tag": tag.empty? ? nil : tag}
107
+ {tag: tag.empty? ? nil : tag}
109
108
  end
110
109
 
111
110
  def status_query(status)
@@ -117,7 +116,7 @@ module FinApps
117
116
  def consumer_query(consumer)
118
117
  return {} unless consumer
119
118
 
120
- {"consumer_id": consumer.empty? ? nil : consumer}
119
+ {consumer_id: consumer.empty? ? nil : consumer}
121
120
  end
122
121
  end
123
122
  end
@@ -64,14 +64,14 @@ module FinApps
64
64
  end
65
65
 
66
66
  def search_query(term)
67
- {"last_name": term}
67
+ {last_name: term}
68
68
  end
69
69
 
70
70
  def role_query(role)
71
71
  if role.is_a?(Array)
72
- {"role": {"$in": role.map(&:to_i)}}
72
+ {role: {"$in": role.map(&:to_i)}}
73
73
  else
74
- {"role": role.to_i}
74
+ {role: role.to_i}
75
75
  end
76
76
  end
77
77
  end
@@ -81,7 +81,7 @@ module FinApps
81
81
  end
82
82
 
83
83
  def search_query_object(term)
84
- [{"public_id": {"$regex": "^#{term}", "$options": 'i'}},
84
+ [{public_id: {"$regex": "^#{term}", "$options": 'i'}},
85
85
  {"assignment.last_name": term},
86
86
  {"applicant.first_name": term},
87
87
  {"applicant.last_name": term},
@@ -95,9 +95,9 @@ module FinApps
95
95
  def status_query(status)
96
96
  if status
97
97
  if status.is_a?(Array)
98
- {"status": {"$in": status.map(&:to_i)}}
98
+ {status: {"$in": status.map(&:to_i)}}
99
99
  else
100
- {"status": status.to_i}
100
+ {status: status.to_i}
101
101
  end
102
102
  else
103
103
  {}
@@ -115,7 +115,7 @@ module FinApps
115
115
 
116
116
  def consumer_query(consumer)
117
117
  if consumer
118
- {"consumer_id": consumer.empty? ? nil : consumer}
118
+ {consumer_id: consumer.empty? ? nil : consumer}
119
119
  else
120
120
  {}
121
121
  end
@@ -125,8 +125,8 @@ module FinApps
125
125
  if !search_term && !nil_or_empty?(relation)
126
126
  {
127
127
  "$or": [
128
- {"public_id": {"$in": relation}},
129
- {"original_order_id": {"$in": relation}}
128
+ {public_id: {"$in": relation}},
129
+ {original_order_id: {"$in": relation}}
130
130
  ]
131
131
  }
132
132
  else
@@ -14,6 +14,18 @@ module FinApps
14
14
  super(nil, path)
15
15
  end
16
16
 
17
+ def tenant_schemas
18
+ path = 'schemas'
19
+ send_request path, :get
20
+ end
21
+
22
+ def last(consumer_id)
23
+ not_blank(consumer_id, :consumer_id)
24
+
25
+ path = "#{end_point}/#{ERB::Util.url_encode(consumer_id)}/consumer"
26
+ send_request_for_id path, :get, nil
27
+ end
28
+
17
29
  def create(params)
18
30
  not_blank(params, :params)
19
31
  super params
@@ -34,6 +46,12 @@ module FinApps
34
46
  super params, path
35
47
  end
36
48
 
49
+ def destroy(id)
50
+ not_blank(id, :session_id)
51
+
52
+ super
53
+ end
54
+
37
55
  private
38
56
 
39
57
  def build_filter(params)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.0.47'
4
+ VERSION = '5.4.0'
5
5
  end
@@ -118,11 +118,14 @@ RSpec.describe FinApps::REST::Consumers do
118
118
 
119
119
  it 'builds query and sends proper request' do
120
120
  list
121
- url = "#{versioned_api_path}/consumers?"\
122
- 'filter=%7B%22$or%22:%5B%7B%22email%22:%22term%22%7D,' \
123
- '%7B%22first_name%22:%22term%22%7D,'\
124
- '%7B%22last_name%22:%22term%22%7D%5D%7D&page=2&requested=25' \
125
- '&sort=date_created'
121
+ filter = '{"$or":['\
122
+ '{"external_id":"term"},'\
123
+ '{"email":"term"},'\
124
+ '{"first_name":"term"},'\
125
+ '{"last_name":"term"}'\
126
+ ']}'
127
+ query = "?filter=#{filter}&page=2&requested=25&sort=date_created"
128
+ url = "#{versioned_api_path}/consumers#{query}"
126
129
  expect(WebMock).to have_requested(:get, url)
127
130
  end
128
131
 
@@ -138,13 +141,18 @@ RSpec.describe FinApps::REST::Consumers do
138
141
 
139
142
  it 'treats space as start of a new query for first and last name' do
140
143
  list
141
- url = "#{versioned_api_path}/consumers?"\
142
- 'filter=%7B%22$or%22:%5B%7B%22email%22:%22Two%20terms%22%7D,'\
143
- '%7B%22first_name%22:%22Two%20terms%22%7D,'\
144
- '%7B%22last_name%22:%22Two%20terms%22%7D,%7B%22first_name%22:'\
145
- '%22Two%22%7D,%7B%22last_name%22:%22Two%22%7D,'\
146
- '%7B%22first_name%22:%22terms%22%7D,%7B%22last_name%22:'\
147
- '%22terms%22%7D%5D%7D&page=2&requested=25&sort=date_created'
144
+ filter = '{"$or":['\
145
+ '{"external_id":"Two terms"},'\
146
+ '{"email":"Two terms"},'\
147
+ '{"first_name":"Two terms"},'\
148
+ '{"last_name":"Two terms"},'\
149
+ '{"first_name":"Two"},'\
150
+ '{"last_name":"Two"},'\
151
+ '{"first_name":"terms"},'\
152
+ '{"last_name":"terms"}'\
153
+ ']}'
154
+ query = "?filter=#{filter}&page=2&requested=25&sort=date_created"
155
+ url = "#{versioned_api_path}/consumers#{query}"
148
156
  expect(WebMock).to have_requested(:get, url)
149
157
  end
150
158
  end
@@ -52,33 +52,30 @@ RSpec.describe FinApps::REST::DocumentsOrders do
52
52
  "#{versioned_api_path}/documents/orders?"\
53
53
  'filter=%7B%22$or%22:%5B%7B%22applicant.email%22:'\
54
54
  '%22term%22%7D,%7B%22applicant.first_name%22:%22term%22%7D,'\
55
- '%7B%22applicant.last_name%22:'\
56
- '%22term%22%7D,%7B%22reference_no%22:%7B%22$regex%22:%22%5Eterm%22,'\
57
- '%22$options%22:%22i%22%7D%7D%5D,'\
58
- '%22consumer_id%22:%22valid_consumer_id%22%7D&'\
59
- 'page=2&requested=25&sort=tag '
55
+ '%7B%22applicant.last_name%22:%22term%22%7D,'\
56
+ '%7B%22applicant.external_id%22:%22term%22%7D,%7B%22reference_no%22:'\
57
+ '%7B%22$regex%22:%22%5Eterm%22,%22$options%22:%22i%22%7D%7D%5D,'\
58
+ '%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=tag'
60
59
 
61
60
  expect(WebMock).to have_requested(:get, url)
62
61
  end
63
62
 
64
63
  context 'with search term containing spaces' do
65
- let(:params) { {"searchTerm": 'Blue Jay', "page": 2} }
64
+ let(:params) { {searchTerm: 'Blue Jay', page: 2} }
66
65
 
67
66
  it 'builds query and sends proper request' do
68
67
  list
69
68
  url =
70
69
  "#{versioned_api_path}/documents/orders?"\
71
70
  'filter=%7B%22$or%22:%5B%7B%22applicant.email%22:'\
72
- '%22Blue%20Jay%22%7D,'\
73
- '%7B%22applicant.first_name%22:%22Blue%20Jay%22%7D,'\
74
- '%7B%22applicant.last_name%22:'\
75
- '%22Blue%20Jay%22%7D,'\
76
- '%7B%22reference_no%22:%7B%22$regex%22:%22%5EBlue%20Jay%22,'\
77
- '%22$options%22:'\
78
- '%22i%22%7D%7D,%7B%22applicant.first_name%22:%22Blue%22%7D,'\
79
- '%7B%22applicant.last_name%22:%22Blue%22%7D,'\
80
- '%7B%22applicant.first_name%22:%22Jay%22%7D,'\
81
- '%7B%22applicant.last_name%22:%22Jay%22%7D%5D%7D&page=2'
71
+ '%22Blue%20Jay%22%7D,%7B%22applicant.first_name%22:'\
72
+ '%22Blue%20Jay%22%7D,%7B%22applicant.last_name%22:'\
73
+ '%22Blue%20Jay%22%7D,%7B%22applicant.external_id%22:'\
74
+ '%22Blue%20Jay%22%7D,%7B%22reference_no%22:%7B%22$regex%22:'\
75
+ '%22%5EBlue%20Jay%22,%22$options%22:%22i%22%7D%7D,'\
76
+ '%7B%22applicant.first_name%22:%22Blue%22%7D,%7B%22'\
77
+ 'applicant.last_name%22:%22Blue%22%7D,%7B%22applicant.first_name%22:'\
78
+ '%22Jay%22%7D,%7B%22applicant.last_name%22:%22Jay%22%7D%5D%7D&page=2'
82
79
 
83
80
  expect(WebMock).to have_requested(:get, url)
84
81
  end
@@ -174,17 +171,17 @@ RSpec.describe FinApps::REST::DocumentsOrders do
174
171
  context 'with valid params' do
175
172
  let(:params) do
176
173
  {
177
- "applicant": {
178
- "email": 'validemail@financialapps.com',
179
- "first_name": 'Emily',
180
- "last_name": 'Macs',
181
- "role": 'patient'
174
+ applicant: {
175
+ email: 'validemail@financialapps.com',
176
+ first_name: 'Emily',
177
+ last_name: 'Macs',
178
+ role: 'patient'
182
179
  },
183
- "esign_documents": [
180
+ esign_documents: [
184
181
  'temp-id'
185
182
  ],
186
- "reference_no": 'REFNO',
187
- "tag": 'new'
183
+ reference_no: 'REFNO',
184
+ tag: 'new'
188
185
  }
189
186
  end
190
187
 
@@ -200,13 +197,13 @@ RSpec.describe FinApps::REST::DocumentsOrders do
200
197
  context 'with invalid params' do
201
198
  let(:params) do
202
199
  {
203
- "applicant": {
204
- "email": 'validemail@financialapps.com',
205
- "first_name": 'Emily',
206
- "last_name": 'Macs',
207
- "role": 'patient'
200
+ applicant: {
201
+ email: 'validemail@financialapps.com',
202
+ first_name: 'Emily',
203
+ last_name: 'Macs',
204
+ role: 'patient'
208
205
  },
209
- "reference_no": 'REFNO'
206
+ reference_no: 'REFNO'
210
207
  }
211
208
  end
212
209
 
@@ -236,7 +233,7 @@ RSpec.describe FinApps::REST::DocumentsOrders do
236
233
  let(:id) { :valid_order_id }
237
234
 
238
235
  context 'with valid params' do
239
- let(:params) { {"tag": 'pending'} }
236
+ let(:params) { {tag: 'pending'} }
240
237
 
241
238
  it_behaves_like 'an API request'
242
239
  it_behaves_like 'a successful request'
@@ -244,7 +241,7 @@ RSpec.describe FinApps::REST::DocumentsOrders do
244
241
  end
245
242
 
246
243
  context 'with invalid params' do
247
- let(:params) { {"tag": 'invalid'} }
244
+ let(:params) { {tag: 'invalid'} }
248
245
 
249
246
  it_behaves_like 'an API request'
250
247
  it('results is nil') { expect(results).to be_nil }
@@ -6,12 +6,12 @@ require 'rest/api_request'
6
6
  RSpec.describe FinApps::REST::Screenings do
7
7
  include SpecHelpers::Client
8
8
 
9
+ let(:results) { subject[0] }
10
+ let(:error_messages) { subject[1] }
11
+
9
12
  describe '#list' do
10
13
  subject(:list) { described_class.new(client).list(params) }
11
14
 
12
- let(:results) { list[0] }
13
- let(:error_messages) { list[1] }
14
-
15
15
  context 'with valid params' do
16
16
  let(:params) do
17
17
  {
@@ -76,12 +76,26 @@ RSpec.describe FinApps::REST::Screenings do
76
76
  end
77
77
  end
78
78
 
79
+ describe '#tenant_schemas' do
80
+ subject(:tenant_schemas) { described_class.new(client).tenant_schemas }
81
+
82
+ it_behaves_like 'an API request'
83
+ it_behaves_like 'a successful request'
84
+ it 'performs a get and returns the response' do
85
+ expect(results[0]).to have_key(:external_url)
86
+ end
87
+
88
+ it 'sends proper request' do
89
+ tenant_schemas
90
+ url = "#{versioned_api_path}/schemas"
91
+
92
+ expect(WebMock).to have_requested(:get, url)
93
+ end
94
+ end
95
+
79
96
  describe '#show' do
80
97
  subject(:show) { described_class.new(client).show(id) }
81
98
 
82
- let(:results) { show[0] }
83
- let(:error_messages) { show[1] }
84
-
85
99
  context 'with valid id' do
86
100
  let(:id) { :valid_id }
87
101
 
@@ -106,19 +120,43 @@ RSpec.describe FinApps::REST::Screenings do
106
120
  end
107
121
  end
108
122
 
123
+ describe '#last' do
124
+ subject(:last) { described_class.new(client).last(consumer_id) }
125
+
126
+ context 'with valid consumer_id' do
127
+ let(:consumer_id) { :valid_consumer_id }
128
+
129
+ it_behaves_like 'an API request'
130
+ it_behaves_like 'a successful request'
131
+ it('results have an :s_id node') do
132
+ expect(results).to have_key(:s_id)
133
+ end
134
+ end
135
+
136
+ context 'with invalid consumer_id' do
137
+ let(:consumer_id) { :invalid_consumer_id }
138
+
139
+ it { expect(results).to be_nil }
140
+ it { expect(error_messages).not_to be_empty }
141
+ end
142
+
143
+ context 'when missing consumer_id' do
144
+ let(:consumer_id) { nil }
145
+
146
+ it_behaves_like 'a request that raises an error'
147
+ end
148
+ end
149
+
109
150
  describe '#create' do
110
151
  subject(:create) { described_class.new(client).create(params) }
111
152
 
112
- let(:results) { create[0] }
113
- let(:error_messages) { create[1] }
114
-
115
153
  context 'with valid params' do
116
154
  let(:params) do
117
155
  {
118
- "email": 'validemail@financialapps.com',
119
- "first_name": 'Geo',
120
- "last_name": 'Metric',
121
- "public_id": '1234'
156
+ email: 'validemail@financialapps.com',
157
+ first_name: 'Geo',
158
+ last_name: 'Metric',
159
+ public_id: '1234'
122
160
  }
123
161
  end
124
162
 
@@ -132,7 +170,7 @@ RSpec.describe FinApps::REST::Screenings do
132
170
  end
133
171
 
134
172
  context 'with invalid params' do
135
- let(:params) { {"params": 'invalid'} }
173
+ let(:params) { {params: 'invalid'} }
136
174
 
137
175
  it { expect { create }.not_to raise_error }
138
176
  it('results is nil') { expect(results).to be_nil }
@@ -153,14 +191,12 @@ RSpec.describe FinApps::REST::Screenings do
153
191
  subject(:update) { described_class.new(client).update(id, params) }
154
192
 
155
193
  let(:params) { {} }
156
- let(:results) { update[0] }
157
- let(:error_messages) { update[1] }
158
194
 
159
195
  context 'with valid session id' do
160
196
  let(:id) { :valid_id }
161
197
 
162
198
  context 'with valid params' do
163
- let(:params) { {"question_id": '1234'} }
199
+ let(:params) { {question_id: '1234'} }
164
200
 
165
201
  it_behaves_like 'an API request'
166
202
  it_behaves_like 'a successful request'
@@ -170,7 +206,7 @@ RSpec.describe FinApps::REST::Screenings do
170
206
  end
171
207
 
172
208
  context 'with invalid params' do
173
- let(:params) { {"question_id": 'invalid'} }
209
+ let(:params) { {question_id: 'invalid'} }
174
210
 
175
211
  it_behaves_like 'an API request'
176
212
  it('results is nil') { expect(results).to be_nil }
@@ -183,7 +219,7 @@ RSpec.describe FinApps::REST::Screenings do
183
219
 
184
220
  context 'with invalid session id' do
185
221
  let(:id) { :invalid_id }
186
- let(:params) { {"question_id": '1234'} }
222
+ let(:params) { {question_id: '1234'} }
187
223
 
188
224
  it_behaves_like 'an API request'
189
225
  it('results is nil') { expect(results).to be_nil }
@@ -195,4 +231,38 @@ RSpec.describe FinApps::REST::Screenings do
195
231
  end
196
232
  end
197
233
  end
234
+
235
+ describe '#destroy' do
236
+ subject(:destroy) { described_class.new(client).destroy(id) }
237
+
238
+ context 'with valid session id' do
239
+ let(:id) { :valid_id }
240
+
241
+ it_behaves_like 'an API request'
242
+ it_behaves_like 'a successful request'
243
+ it('results is nil') { expect(results).to be_nil }
244
+ it('error_messages is empty') { expect(error_messages).to be_empty }
245
+ end
246
+
247
+ context 'when missing session id' do
248
+ let(:id) { nil }
249
+
250
+ it_behaves_like 'a request that raises an error'
251
+ end
252
+
253
+ context 'with invalid session id' do
254
+ let(:id) { :invalid_id }
255
+
256
+ it_behaves_like 'an API request'
257
+ it('results is nil') { expect(results).to be_nil }
258
+
259
+ it('error_messages is not empty') do
260
+ expect(error_messages).not_to be_empty
261
+ end
262
+
263
+ it('error messages array is populated') do
264
+ expect(error_messages.first.downcase).to eq('session not found')
265
+ end
266
+ end
267
+ end
198
268
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  require 'sinatra/base'
4
4
  require_relative 'documents_uploads_routes'
5
+ require_relative 'screenings_routes'
5
6
 
6
7
  module Fake
7
- # rubocop:disable Metrics/ClassLength
8
8
  # the FakeApi class is used to mock API requests while testing.
9
9
  class FakeApi < Sinatra::Base
10
10
  def self.version
@@ -278,33 +278,7 @@ module Fake
278
278
  get("/#{version}/documents/upload_types") { json_response 200, 'upload_types.json' }
279
279
 
280
280
  # screenings
281
- get("/#{version}/screenings") { json_response 200, 'screening_list.json' }
282
- get("/#{version}/screenings/invalid_id/resume") do
283
- json_response 404, 'resource_not_found.json'
284
- end
285
- get("/#{version}/screenings/valid_id/resume") { json_response 200, 'screening.json' }
286
- put("/#{version}/screenings/invalid_id") do
287
- json_response 404, 'resource_not_found.json'
288
- end
289
- put("/#{version}/screenings/valid_id") do
290
- request.body.rewind
291
- request_payload = JSON.parse request.body.read
292
- if request_payload['question_id'] == 'invalid'
293
- json_response 400, 'screening_invalid_update.json'
294
- else
295
- json_response 200, 'screening.json'
296
- end
297
- end
298
-
299
- post("/#{version}/screenings") do
300
- request.body.rewind
301
- request_payload = JSON.parse request.body.read
302
- if request_payload.key? 'email'
303
- json_response 201, 'screening.json'
304
- else
305
- json_response 400, 'invalid_request_body.json'
306
- end
307
- end
281
+ include ScreeningsRoutes
308
282
 
309
283
  # consumers
310
284
  get("/#{version}/consumers") do
@@ -528,6 +502,10 @@ module Fake
528
502
 
529
503
  private
530
504
 
505
+ def resource_not_found
506
+ json_response 404, 'resource_not_found.json'
507
+ end
508
+
531
509
  def json_response(response_code, file_name)
532
510
  http_response :json, response_code, file_name
533
511
  end
@@ -546,5 +524,4 @@ module Fake
546
524
  File.open("#{File.dirname(__FILE__)}/fixtures/#{file_name}").read
547
525
  end
548
526
  end
549
- # rubocop:enable Metrics/ClassLength
550
527
  end
@@ -0,0 +1,13 @@
1
+ {
2
+ "s_id": "ee8d7a39-5bf2-4e80-9e03-2f88897c4ebd",
3
+ "date_created": "2021-02-05T21:23:50.368Z",
4
+ "date_modified": "2021-02-05T21:23:50.368Z",
5
+ "consumer": {
6
+ "public_id": "368bf4ac-cd8c-4059-62a7-f19a9d7501df",
7
+ "email": "christopher+1612473370669@financialapps.com",
8
+ "first_name": "Dayna",
9
+ "last_name": "Langosh"
10
+ },
11
+ "operator_id": "5d2afdf9-11fc-425b-704d-d74ca7626de8",
12
+ "progress": 0
13
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "session not found with consumer id (invalid_consumer_id)"
4
+ ]
5
+ }
@@ -0,0 +1,8 @@
1
+ [
2
+ {
3
+ "id": "6058c9e67d4ee100015d55e2",
4
+ "name": "Florida Family Medicaid Eligibility",
5
+ "description": "Screens applicants for Potential Family Medicaid Eligibility in the State of Florida.",
6
+ "external_url": ""
7
+ }
8
+ ]
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "session not found"
4
+ ]
5
+ }
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Fake
4
+ module ScreeningsRoutes
5
+ class << self
6
+ def included(base)
7
+ resource = "/#{base.version}/screenings"
8
+
9
+ list_routes base, resource
10
+ resume_routes base, resource
11
+ update_routes base, resource
12
+ destroy_routes base, resource
13
+ create_routes base, resource
14
+ end
15
+
16
+ # rubocop:disable Metrics/MethodLength
17
+ def list_routes(base, resource)
18
+ base.get(resource) { json_response 200, 'screening_list.json' }
19
+ base.get(resource.gsub('screenings', 'schemas')) do
20
+ json_response 200, 'screenings/tenant_schemas.json'
21
+ end
22
+ base.get("#{resource}/:consumer_id/consumer") do
23
+ if params[:consumer_id] == 'invalid_consumer_id'
24
+ json_response 404, 'session_not_found.json'
25
+ else
26
+ json_response 200, 'screenings/last_session.json'
27
+ end
28
+ end
29
+ end
30
+ # rubocop:enable Metrics/MethodLength
31
+
32
+ def resume_routes(base, resource)
33
+ base.get("#{resource}/:session_id/resume") do
34
+ return resource_not_found if params[:session_id] == 'invalid_id'
35
+
36
+ json_response 200, 'screening.json'
37
+ end
38
+ end
39
+
40
+ def update_routes(base, resource)
41
+ base.put("#{resource}/:session_id") do
42
+ return resource_not_found if params[:session_id] == 'invalid_id'
43
+
44
+ request.body.rewind
45
+ request_payload = JSON.parse request.body.read
46
+ if request_payload['question_id'] == 'invalid'
47
+ json_response 400, 'screening_invalid_update.json'
48
+ else
49
+ json_response 200, 'screening.json'
50
+ end
51
+ end
52
+ end
53
+
54
+ def create_routes(base, resource)
55
+ base.post(resource) do
56
+ request.body.rewind
57
+ request_payload = JSON.parse request.body.read
58
+ if request_payload.key? 'email'
59
+ json_response 201, 'screening.json'
60
+ else
61
+ json_response 400, 'invalid_request_body.json'
62
+ end
63
+ end
64
+ end
65
+
66
+ def destroy_routes(base, resource)
67
+ base.delete("#{resource}/:session_id") do
68
+ if params[:session_id] == 'valid_id'
69
+ status 200
70
+ else
71
+ json_response 404, 'session_not_found.json'
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
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: 5.0.47
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-19 00:00:00.000000000 Z
11
+ date: 2021-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 5.0.13
22
+ version: 5.0.15
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.0.13
32
+ version: 5.0.15
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -134,122 +134,142 @@ dependencies:
134
134
  name: rspec
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 3.9.0
140
137
  - - "~>"
141
138
  - !ruby/object:Gem::Version
142
- version: '3.9'
139
+ version: '3.10'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 3.10.0
143
143
  type: :development
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: 3.9.0
150
147
  - - "~>"
151
148
  - !ruby/object:Gem::Version
152
- version: '3.9'
149
+ version: '3.10'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 3.10.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rubocop
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 0.87.0
160
157
  - - "~>"
161
158
  - !ruby/object:Gem::Version
162
- version: '0.87'
159
+ version: '1.9'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 1.9.1
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: 0.87.0
170
167
  - - "~>"
171
168
  - !ruby/object:Gem::Version
172
- version: '0.87'
169
+ version: '1.9'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.9.1
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: rubocop-performance
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: 1.7.0
180
177
  - - "~>"
181
178
  - !ruby/object:Gem::Version
182
- version: '1.7'
179
+ version: '1.9'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 1.9.2
183
183
  type: :development
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
186
186
  requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '1.9'
187
190
  - - ">="
188
191
  - !ruby/object:Gem::Version
189
- version: 1.7.0
192
+ version: 1.9.2
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop-rake
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
190
197
  - - "~>"
191
198
  - !ruby/object:Gem::Version
192
- version: '1.7'
199
+ version: '0.5'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.5.1
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.5'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.5.1
193
213
  - !ruby/object:Gem::Dependency
194
214
  name: rubocop-rspec
195
215
  requirement: !ruby/object:Gem::Requirement
196
216
  requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: 1.41.0
200
217
  - - "~>"
201
218
  - !ruby/object:Gem::Version
202
- version: '1.41'
219
+ version: '2.2'
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 2.2.0
203
223
  type: :development
204
224
  prerelease: false
205
225
  version_requirements: !ruby/object:Gem::Requirement
206
226
  requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: 1.41.0
210
227
  - - "~>"
211
228
  - !ruby/object:Gem::Version
212
- version: '1.41'
229
+ version: '2.2'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 2.2.0
213
233
  - !ruby/object:Gem::Dependency
214
234
  name: sinatra
215
235
  requirement: !ruby/object:Gem::Requirement
216
236
  requirements:
217
237
  - - "~>"
218
238
  - !ruby/object:Gem::Version
219
- version: '2.0'
239
+ version: '2.1'
220
240
  - - ">="
221
241
  - !ruby/object:Gem::Version
222
- version: 2.0.8
242
+ version: 2.1.0
223
243
  type: :development
224
244
  prerelease: false
225
245
  version_requirements: !ruby/object:Gem::Requirement
226
246
  requirements:
227
247
  - - "~>"
228
248
  - !ruby/object:Gem::Version
229
- version: '2.0'
249
+ version: '2.1'
230
250
  - - ">="
231
251
  - !ruby/object:Gem::Version
232
- version: 2.0.8
252
+ version: 2.1.0
233
253
  - !ruby/object:Gem::Dependency
234
254
  name: webmock
235
255
  requirement: !ruby/object:Gem::Requirement
236
256
  requirements:
237
- - - ">="
238
- - !ruby/object:Gem::Version
239
- version: 3.8.0
240
257
  - - "~>"
241
258
  - !ruby/object:Gem::Version
242
- version: '3.8'
259
+ version: '3.11'
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: 3.11.2
243
263
  type: :development
244
264
  prerelease: false
245
265
  version_requirements: !ruby/object:Gem::Requirement
246
266
  requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: 3.8.0
250
267
  - - "~>"
251
268
  - !ruby/object:Gem::Version
252
- version: '3.8'
269
+ version: '3.11'
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: 3.11.2
253
273
  description: A simple library for communicating with the FinApps REST API.
254
274
  email:
255
275
  - erich@financialapps.com
@@ -260,8 +280,9 @@ extra_rdoc_files:
260
280
  - LICENSE.txt
261
281
  files:
262
282
  - ".codeclimate.yml"
283
+ - ".github/dependabot.yml"
263
284
  - ".github/release-drafter.yml"
264
- - ".github/workflows/main.yaml"
285
+ - ".github/workflows/ci.yaml"
265
286
  - ".github/workflows/release-drafter.yml"
266
287
  - ".github/workflows/release.yml"
267
288
  - ".github/workflows/verify-pr-labeled.yml"
@@ -424,6 +445,10 @@ files:
424
445
  - spec/support/fixtures/screening.json
425
446
  - spec/support/fixtures/screening_invalid_update.json
426
447
  - spec/support/fixtures/screening_list.json
448
+ - spec/support/fixtures/screenings/last_session.json
449
+ - spec/support/fixtures/screenings/session_not_found_with_id.json
450
+ - spec/support/fixtures/screenings/tenant_schemas.json
451
+ - spec/support/fixtures/session_not_found.json
427
452
  - spec/support/fixtures/sign_url.json
428
453
  - spec/support/fixtures/signed_document.pdf
429
454
  - spec/support/fixtures/single_consumer_subscribe_error.json
@@ -439,6 +464,7 @@ files:
439
464
  - spec/support/fixtures/verix/metadata.json
440
465
  - spec/support/fixtures/verix/record/create.json
441
466
  - spec/support/fixtures/verix/record/list.json
467
+ - spec/support/screenings_routes.rb
442
468
  - spec/utils/query_builder_spec.rb
443
469
  - tags
444
470
  homepage: https://github.com/finapps/ruby-client
@@ -466,55 +492,56 @@ required_rubygems_version: !ruby/object:Gem::Requirement
466
492
  - !ruby/object:Gem::Version
467
493
  version: '0'
468
494
  requirements: []
469
- rubygems_version: 3.0.3
495
+ rubygems_version: 3.1.4
470
496
  signing_key:
471
497
  specification_version: 4
472
498
  summary: FinApps REST API ruby client.
473
499
  test_files:
474
- - spec/rest/order_assignments_spec.rb
475
- - spec/rest/documents_uploads_spec.rb
476
- - spec/rest/portfolio_reports_spec.rb
500
+ - spec/spec_helpers/client.rb
501
+ - spec/support/screenings_routes.rb
502
+ - spec/support/fake_api.rb
503
+ - spec/support/documents_uploads_routes.rb
477
504
  - spec/rest/alert_definitions_spec.rb
478
- - spec/rest/order_notifications_spec.rb
479
- - spec/rest/verix/verix_documents_spec.rb
480
- - spec/rest/verix/verix_records_spec.rb
481
- - spec/rest/verix/verix_metadata_spec.rb
482
- - spec/rest/verix/verix_pdf_documents_spec.rb
483
- - spec/rest/api_request.rb
484
- - spec/rest/documents_upload_types_spec.rb
485
- - spec/rest/portfolios_consumers_spec.rb
486
- - spec/rest/esign_templates_spec.rb
487
- - spec/rest/operators_spec.rb
488
- - spec/rest/sessions_spec.rb
489
- - spec/rest/documents_orders_spec.rb
490
- - spec/rest/version_spec.rb
491
- - spec/rest/products_spec.rb
492
- - spec/rest/signed_documents_downloads_spec.rb
493
- - spec/rest/portfolios_available_consumers_spec.rb
494
- - spec/rest/plaid/plaid_account_permissions_spec.rb
495
- - spec/rest/plaid/plaid_accounts_spec.rb
496
- - spec/rest/plaid/plaid_webhooks_spec.rb
497
- - spec/rest/plaid/plaid_consumer_institutions_spec.rb
498
- - spec/rest/plaid/plaid_institution_logos_spec.rb
499
- - spec/rest/tenant_app_settings_spec.rb
505
+ - spec/rest/documents_orders_notifications_spec.rb
500
506
  - spec/rest/order_reports_spec.rb
501
- - spec/rest/orders_spec.rb
502
- - spec/rest/client_spec.rb
503
- - spec/rest/screenings_spec.rb
504
507
  - spec/rest/consumers_spec.rb
505
- - spec/rest/order_statuses_spec.rb
506
- - spec/rest/password_resets_spec.rb
507
- - spec/rest/documents_orders_notifications_spec.rb
508
+ - spec/rest/documents_uploads_spec.rb
509
+ - spec/rest/portfolios_available_consumers_spec.rb
508
510
  - spec/rest/alert_occurrences_spec.rb
511
+ - spec/rest/screenings_spec.rb
509
512
  - spec/rest/portfolios_alerts_spec.rb
513
+ - spec/rest/products_spec.rb
514
+ - spec/rest/tenant_app_settings_spec.rb
515
+ - spec/rest/plaid/plaid_consumer_institutions_spec.rb
516
+ - spec/rest/plaid/plaid_webhooks_spec.rb
517
+ - spec/rest/plaid/plaid_institution_logos_spec.rb
518
+ - spec/rest/plaid/plaid_account_permissions_spec.rb
519
+ - spec/rest/plaid/plaid_accounts_spec.rb
510
520
  - spec/rest/order_refreshes_spec.rb
521
+ - spec/rest/order_assignments_spec.rb
522
+ - spec/rest/order_tokens_spec.rb
523
+ - spec/rest/documents_orders_spec.rb
524
+ - spec/rest/signed_documents_downloads_spec.rb
525
+ - spec/rest/portfolios_consumers_spec.rb
526
+ - spec/rest/version_spec.rb
527
+ - spec/rest/documents_upload_types_spec.rb
528
+ - spec/rest/password_resets_spec.rb
529
+ - spec/rest/order_statuses_spec.rb
530
+ - spec/rest/operators_spec.rb
531
+ - spec/rest/portfolio_reports_spec.rb
532
+ - spec/rest/order_notifications_spec.rb
533
+ - spec/rest/orders_spec.rb
534
+ - spec/rest/esign_templates_spec.rb
535
+ - spec/rest/sessions_spec.rb
536
+ - spec/rest/api_request.rb
537
+ - spec/rest/verix/verix_documents_spec.rb
538
+ - spec/rest/verix/verix_pdf_documents_spec.rb
539
+ - spec/rest/verix/verix_records_spec.rb
540
+ - spec/rest/verix/verix_metadata_spec.rb
511
541
  - spec/rest/tenant_settings_spec.rb
512
542
  - spec/rest/portfolios_spec.rb
513
- - spec/rest/order_tokens_spec.rb
514
- - spec/rest/consumers_portfolios_spec.rb
543
+ - spec/rest/client_spec.rb
515
544
  - spec/rest/operators_password_resets_spec.rb
516
- - spec/support/fake_api.rb
517
- - spec/support/documents_uploads_routes.rb
545
+ - spec/rest/consumers_portfolios_spec.rb
518
546
  - spec/spec_helper.rb
519
547
  - spec/utils/query_builder_spec.rb
520
- - spec/spec_helpers/client.rb