onc_certification_g10_test_kit 7.0.3 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/g10_reference_server_preset.json +1467 -0
  3. data/lib/inferno/ext/bloomer.rb +1 -1
  4. data/lib/inferno/terminology/tasks/process_umls.rb +1 -1
  5. data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +73 -67
  6. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu1.rb +1 -2
  7. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu2.rb +7 -1
  8. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_parameters.rb +1 -1
  9. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_stu1.rb +10 -2
  10. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +6 -2
  11. data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +7 -3
  12. data/lib/onc_certification_g10_test_kit/configuration_checker.rb +5 -13
  13. data/lib/onc_certification_g10_test_kit/encounter_context_test.rb +3 -3
  14. data/lib/onc_certification_g10_test_kit/export_kick_off_performer.rb +7 -3
  15. data/lib/onc_certification_g10_test_kit/feature.rb +5 -4
  16. data/lib/onc_certification_g10_test_kit/igs/01-us-core-v400.tgz +0 -0
  17. data/lib/onc_certification_g10_test_kit/igs/03-us-core-v311.tgz +0 -0
  18. data/lib/onc_certification_g10_test_kit/igs/04-us-core-610.tgz +0 -0
  19. data/lib/onc_certification_g10_test_kit/metadata.rb +103 -0
  20. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +0 -4
  21. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +8 -4
  22. data/lib/onc_certification_g10_test_kit/patient_context_test.rb +3 -3
  23. data/lib/onc_certification_g10_test_kit/patient_scope_test.rb +1 -1
  24. data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +3 -10
  25. data/lib/onc_certification_g10_test_kit/scope_constants.rb +52 -0
  26. data/lib/onc_certification_g10_test_kit/short_id_map.yml +11 -20
  27. data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +18 -17
  28. data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +18 -17
  29. data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +18 -17
  30. data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +20 -19
  31. data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +20 -19
  32. data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +108 -65
  33. data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +42 -89
  34. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +33 -43
  35. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +32 -54
  36. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +34 -55
  37. data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +103 -146
  38. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +17 -55
  39. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +17 -55
  40. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +17 -55
  41. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +17 -55
  42. data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +33 -68
  43. data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_test.rb +4 -3
  44. data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +45 -89
  45. data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +45 -89
  46. data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +53 -91
  47. data/lib/onc_certification_g10_test_kit/smart_invalid_token_refresh_test.rb +9 -6
  48. data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +86 -278
  49. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +32 -59
  50. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +36 -75
  51. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +36 -75
  52. data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +6 -1
  53. data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +90 -118
  54. data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +62 -116
  55. data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +3 -12
  56. data/lib/onc_certification_g10_test_kit/token_introspection_group.rb +12 -25
  57. data/lib/onc_certification_g10_test_kit/token_introspection_group_stu2_2.rb +12 -14
  58. data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +44 -33
  59. data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +3 -3
  60. data/lib/onc_certification_g10_test_kit/urls.rb +4 -0
  61. data/lib/onc_certification_g10_test_kit/version.rb +2 -1
  62. data/lib/onc_certification_g10_test_kit.rb +119 -65
  63. metadata +20 -68
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
6
6
  input_instructions %(
7
7
  If necessary, register Inferno as a standalone application using the following information:
8
8
 
9
- * Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
9
+ * Redirect URI: `#{REDIRECT_URI}`
10
10
 
11
11
  Inferno may be registered multiple times with different `client_ids`, or this
12
12
  may reuse a single registration of Inferno.`
@@ -92,6 +92,22 @@ module ONCCertificationG10TestKit
92
92
 
93
93
  input :url
94
94
 
95
+ config(
96
+ inputs: {
97
+ smart_auth_info: {
98
+ options: {
99
+ components: [
100
+ Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
101
+ {
102
+ name: :jwks,
103
+ locked: true
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ }
109
+ )
110
+
95
111
  children.each(&:run_as_group)
96
112
 
97
113
  # Replace generic finer-grained scope auth group with which allows standalone or
@@ -125,64 +141,10 @@ module ONCCertificationG10TestKit
125
141
 
126
142
  config(
127
143
  inputs: {
128
- authorization_method: {
129
- name: :granular_scopes_authorization_method,
130
- title: 'Granular Scopes Authorization Request Method'
131
- },
132
- client_auth_type: {
133
- name: :granular_scopes_client_auth_type,
134
- title: 'Granular Scopes Client Authentication Type'
135
- },
136
144
  received_scopes: {
137
145
  name: :standalone_received_scopes
138
146
  }
139
147
  }
140
148
  )
141
-
142
- granular_scopes_group1.config(
143
- inputs: {
144
- client_id: {
145
- name: :granular_scopes1_client_id,
146
- title: 'Granular Scopes Group 1 Client ID'
147
- },
148
- client_secret: {
149
- name: :granular_scopes1_client_secret,
150
- title: 'Granular Scopes Group 1 Client Secret'
151
- },
152
- requested_scopes: {
153
- title: 'Granular Scopes Group 1 Scopes'
154
- }
155
- }
156
- )
157
-
158
- granular_scopes_group2.config(
159
- inputs: {
160
- client_id: {
161
- name: :granular_scopes2_client_id,
162
- title: 'Granular Scopes Group 2 Client ID'
163
- },
164
- client_secret: {
165
- name: :granular_scopes2_client_secret,
166
- title: 'Granular Scopes Group 2 Client Secret'
167
- },
168
- requested_scopes: {
169
- title: 'Granular Scopes Group 2 Scopes'
170
- }
171
- }
172
- )
173
-
174
- input_order :url,
175
- :granular_scopes1_client_id,
176
- :requested_scopes_group1,
177
- :granular_scopes_authorization_method,
178
- :granular_scopes_client_auth_type,
179
- :granular_scopes1_client_secret,
180
- :client_auth_encryption_method,
181
- :granular_scopes2_client_id,
182
- :requested_scopes_group2,
183
- :granular_scopes2_client_secret,
184
- :use_pkce,
185
- :pkce_code_challenge_method,
186
- :patient_ids
187
149
  end
188
150
  end
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
6
6
  input_instructions %(
7
7
  If necessary, register Inferno as a standalone application using the following information:
8
8
 
9
- * Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
9
+ * Redirect URI: `#{REDIRECT_URI}`
10
10
 
11
11
  Inferno may be registered multiple times with different `client_ids`, or this
12
12
  may reuse a single registration of Inferno.`
@@ -92,6 +92,22 @@ module ONCCertificationG10TestKit
92
92
 
93
93
  input :url
94
94
 
95
+ config(
96
+ inputs: {
97
+ smart_auth_info: {
98
+ options: {
99
+ components: [
100
+ Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
101
+ {
102
+ name: :jwks,
103
+ locked: true
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ }
109
+ )
110
+
95
111
  children.each(&:run_as_group)
96
112
 
97
113
  # Replace generic finer-grained scope auth group with which allows standalone or
@@ -125,64 +141,10 @@ module ONCCertificationG10TestKit
125
141
 
126
142
  config(
127
143
  inputs: {
128
- authorization_method: {
129
- name: :granular_scopes_authorization_method,
130
- title: 'Granular Scopes Authorization Request Method'
131
- },
132
- client_auth_type: {
133
- name: :granular_scopes_client_auth_type,
134
- title: 'Granular Scopes Client Authentication Type'
135
- },
136
144
  received_scopes: {
137
145
  name: :standalone_received_scopes
138
146
  }
139
147
  }
140
148
  )
141
-
142
- granular_scopes_group1.config(
143
- inputs: {
144
- client_id: {
145
- name: :granular_scopes1_client_id,
146
- title: 'Granular Scopes Group 1 Client ID'
147
- },
148
- client_secret: {
149
- name: :granular_scopes1_client_secret,
150
- title: 'Granular Scopes Group 1 Client Secret'
151
- },
152
- requested_scopes: {
153
- title: 'Granular Scopes Group 1 Scopes'
154
- }
155
- }
156
- )
157
-
158
- granular_scopes_group2.config(
159
- inputs: {
160
- client_id: {
161
- name: :granular_scopes2_client_id,
162
- title: 'Granular Scopes Group 2 Client ID'
163
- },
164
- client_secret: {
165
- name: :granular_scopes2_client_secret,
166
- title: 'Granular Scopes Group 2 Client Secret'
167
- },
168
- requested_scopes: {
169
- title: 'Granular Scopes Group 2 Scopes'
170
- }
171
- }
172
- )
173
-
174
- input_order :url,
175
- :granular_scopes1_client_id,
176
- :requested_scopes_group1,
177
- :granular_scopes_authorization_method,
178
- :granular_scopes_client_auth_type,
179
- :granular_scopes1_client_secret,
180
- :client_auth_encryption_method,
181
- :granular_scopes2_client_id,
182
- :requested_scopes_group2,
183
- :granular_scopes2_client_secret,
184
- :use_pkce,
185
- :pkce_code_challenge_method,
186
- :patient_ids
187
149
  end
188
150
  end
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
6
6
  input_instructions %(
7
7
  If necessary, register Inferno as a standalone application using the following information:
8
8
 
9
- * Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
9
+ * Redirect URI: `#{REDIRECT_URI}`
10
10
 
11
11
  Inferno may be registered multiple times with different `client_ids`, or this
12
12
  may reuse a single registration of Inferno.`
@@ -92,6 +92,22 @@ module ONCCertificationG10TestKit
92
92
 
93
93
  input :url
94
94
 
95
+ config(
96
+ inputs: {
97
+ smart_auth_info: {
98
+ options: {
99
+ components: [
100
+ Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
101
+ {
102
+ name: :jwks,
103
+ locked: true
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ }
109
+ )
110
+
95
111
  children.each(&:run_as_group)
96
112
 
97
113
  # Replace generic finer-grained scope auth group with which allows standalone or
@@ -125,64 +141,10 @@ module ONCCertificationG10TestKit
125
141
 
126
142
  config(
127
143
  inputs: {
128
- authorization_method: {
129
- name: :granular_scopes_authorization_method,
130
- title: 'Granular Scopes Authorization Request Method'
131
- },
132
- client_auth_type: {
133
- name: :granular_scopes_client_auth_type,
134
- title: 'Granular Scopes Client Authentication Type'
135
- },
136
144
  received_scopes: {
137
145
  name: :standalone_received_scopes
138
146
  }
139
147
  }
140
148
  )
141
-
142
- granular_scopes_group1.config(
143
- inputs: {
144
- client_id: {
145
- name: :granular_scopes1_client_id,
146
- title: 'Granular Scopes Group 1 Client ID'
147
- },
148
- client_secret: {
149
- name: :granular_scopes1_client_secret,
150
- title: 'Granular Scopes Group 1 Client Secret'
151
- },
152
- requested_scopes: {
153
- title: 'Granular Scopes Group 1 Scopes'
154
- }
155
- }
156
- )
157
-
158
- granular_scopes_group2.config(
159
- inputs: {
160
- client_id: {
161
- name: :granular_scopes2_client_id,
162
- title: 'Granular Scopes Group 2 Client ID'
163
- },
164
- client_secret: {
165
- name: :granular_scopes2_client_secret,
166
- title: 'Granular Scopes Group 2 Client Secret'
167
- },
168
- requested_scopes: {
169
- title: 'Granular Scopes Group 2 Scopes'
170
- }
171
- }
172
- )
173
-
174
- input_order :url,
175
- :granular_scopes1_client_id,
176
- :requested_scopes_group1,
177
- :granular_scopes_authorization_method,
178
- :granular_scopes_client_auth_type,
179
- :granular_scopes1_client_secret,
180
- :client_auth_encryption_method,
181
- :granular_scopes2_client_id,
182
- :requested_scopes_group2,
183
- :granular_scopes2_client_secret,
184
- :use_pkce,
185
- :pkce_code_challenge_method,
186
- :patient_ids
187
149
  end
188
150
  end
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
6
6
  input_instructions %(
7
7
  If necessary, register Inferno as a standalone application using the following information:
8
8
 
9
- * Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
9
+ * Redirect URI: `#{REDIRECT_URI}`
10
10
 
11
11
  Inferno may be registered multiple times with different `client_ids`, or this
12
12
  may reuse a single registration of Inferno.`
@@ -92,6 +92,22 @@ module ONCCertificationG10TestKit
92
92
 
93
93
  input :url
94
94
 
95
+ config(
96
+ inputs: {
97
+ smart_auth_info: {
98
+ options: {
99
+ components: [
100
+ Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
101
+ {
102
+ name: :jwks,
103
+ locked: true
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ }
109
+ )
110
+
95
111
  children.each(&:run_as_group)
96
112
 
97
113
  # Replace generic finer-grained scope auth group with which allows standalone or
@@ -125,64 +141,10 @@ module ONCCertificationG10TestKit
125
141
 
126
142
  config(
127
143
  inputs: {
128
- authorization_method: {
129
- name: :granular_scopes_authorization_method,
130
- title: 'Granular Scopes Authorization Request Method'
131
- },
132
- client_auth_type: {
133
- name: :granular_scopes_client_auth_type,
134
- title: 'Granular Scopes Client Authentication Type'
135
- },
136
144
  received_scopes: {
137
145
  name: :standalone_received_scopes
138
146
  }
139
147
  }
140
148
  )
141
-
142
- granular_scopes_group1.config(
143
- inputs: {
144
- client_id: {
145
- name: :granular_scopes1_client_id,
146
- title: 'Granular Scopes Group 1 Client ID'
147
- },
148
- client_secret: {
149
- name: :granular_scopes1_client_secret,
150
- title: 'Granular Scopes Group 1 Client Secret'
151
- },
152
- requested_scopes: {
153
- title: 'Granular Scopes Group 1 Scopes'
154
- }
155
- }
156
- )
157
-
158
- granular_scopes_group2.config(
159
- inputs: {
160
- client_id: {
161
- name: :granular_scopes2_client_id,
162
- title: 'Granular Scopes Group 2 Client ID'
163
- },
164
- client_secret: {
165
- name: :granular_scopes2_client_secret,
166
- title: 'Granular Scopes Group 2 Client Secret'
167
- },
168
- requested_scopes: {
169
- title: 'Granular Scopes Group 2 Scopes'
170
- }
171
- }
172
- )
173
-
174
- input_order :url,
175
- :granular_scopes1_client_id,
176
- :requested_scopes_group1,
177
- :granular_scopes_authorization_method,
178
- :granular_scopes_client_auth_type,
179
- :granular_scopes1_client_secret,
180
- :client_auth_encryption_method,
181
- :granular_scopes2_client_id,
182
- :requested_scopes_group2,
183
- :granular_scopes2_client_secret,
184
- :use_pkce,
185
- :pkce_code_challenge_method,
186
- :patient_ids
187
149
  end
188
150
  end
@@ -10,10 +10,10 @@ module ONCCertificationG10TestKit
10
10
  input_instructions %(
11
11
  If necessary, register Inferno as a standalone application using the following information:
12
12
 
13
- * Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
13
+ * Redirect URI: `#{REDIRECT_URI}`
14
14
 
15
15
  Once the test is running, Inferno will perform a launch. The tester must grant
16
- a sub-resource scope for each Conditoin and Observation, instead of granting
16
+ a sub-resource scope for each Condition and Observation, instead of granting
17
17
  access to all Condition and Observation resources:
18
18
 
19
19
  * “Condition” sub-resource scopes “Encounter Diagnosis”, “Problem List”,
@@ -66,21 +66,36 @@ module ONCCertificationG10TestKit
66
66
 
67
67
  config(
68
68
  inputs: {
69
- use_pkce: {
70
- default: 'true',
71
- locked: true
72
- },
73
- pkce_code_challenge_method: {
74
- locked: true
75
- },
76
- granular_scope_selection_authorization_method: {
77
- name: :granular_scope_selection_authorization_method,
78
- default: 'get'
79
- },
80
- client_auth_type: {
81
- name: :granular_scope_selection_client_auth_type,
82
- default: 'confidential_asymmetric'
69
+ received_scopes: { name: :granular_scope_selection_v2_received_scopes },
70
+ smart_auth_info: {
71
+ name: :granular_scopes_selection_smart_auth_info,
72
+ title: 'Granular Scope Selection Credentials',
73
+ options: {
74
+ mode: 'auth',
75
+ components: [
76
+ Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
77
+ {
78
+ name: :use_discovery,
79
+ locked: true
80
+ },
81
+ {
82
+ name: :requested_scopes,
83
+ default: %(
84
+ launch/patient openid fhirUser offline_access patient/Condition.rs
85
+ patient/Observation.rs patient/Patient.rs
86
+ ).gsub(/\s{2,}/, ' ').strip
87
+ },
88
+ {
89
+ name: :jwks,
90
+ locked: true
91
+ }
92
+ ]
93
+ }
83
94
  }
95
+ },
96
+ outputs: {
97
+ smart_auth_info: { name: :granular_scopes_selection_smart_auth_info },
98
+ received_scopes: { name: :granular_scope_selection_v2_received_scopes }
84
99
  }
85
100
  )
86
101
 
@@ -95,31 +110,6 @@ module ONCCertificationG10TestKit
95
110
  title 'Granular Scope Selection with v2 Scopes'
96
111
 
97
112
  config(
98
- inputs: {
99
- client_id: {
100
- name: :granular_scope_selection_v2_client_id,
101
- title: 'Granular Scope Selection w/v2 Scopes Client ID'
102
- },
103
- client_secret: {
104
- name: :granular_scope_selection_v2_client_secret,
105
- title: 'Granular Scope Selection w/v2 Scopes Client Secret',
106
- default: nil,
107
- optional: true
108
- },
109
- requested_scopes: {
110
- name: :granular_scope_selection_v2_requested_scopes,
111
- title: 'Granular Scope Selection v2 Scopes',
112
- default: %(
113
- launch/patient openid fhirUser offline_access patient/Condition.rs
114
- patient/Observation.rs patient/Patient.rs
115
- ).gsub(/\s{2,}/, ' ').strip
116
- },
117
- received_scopes: { name: :granular_scope_selection_v2_received_scopes }
118
- },
119
- outputs: {
120
- requested_scopes: { name: :granular_scope_selection_v2_requested_scopes },
121
- received_scopes: { name: :granular_scope_selection_v2_received_scopes }
122
- },
123
113
  options: {
124
114
  redirect_message_proc: proc do |auth_url|
125
115
  %(
@@ -128,7 +118,7 @@ module ONCCertificationG10TestKit
128
118
  [Follow this link to authorize with the SMART server](#{auth_url}).
129
119
 
130
120
  Tests will resume once Inferno receives a request at
131
- `#{config.options[:redirect_uri]}` with a state of `#{state}`.
121
+ `#{REDIRECT_URI}` with a state of `#{state}`.
132
122
  )
133
123
  end,
134
124
  ignore_missing_scopes_check: true
@@ -157,31 +147,6 @@ module ONCCertificationG10TestKit
157
147
  title 'Granular Scope Selection with v2 Scopes'
158
148
 
159
149
  config(
160
- inputs: {
161
- client_id: {
162
- name: :granular_scope_selection_v2_client_id,
163
- title: 'Granular Scope Selection w/v2 Scopes Client ID'
164
- },
165
- client_secret: {
166
- name: :granular_scope_selection_v2_client_secret,
167
- title: 'Granular Scope Selection w/v2 Scopes Client Secret',
168
- default: nil,
169
- optional: true
170
- },
171
- requested_scopes: {
172
- name: :granular_scope_selection_v2_requested_scopes,
173
- title: 'Granular Scope Selection v2 Scopes',
174
- default: %(
175
- launch/patient openid fhirUser offline_access patient/Condition.rs
176
- patient/Observation.rs patient/Patient.rs
177
- ).gsub(/\s{2,}/, ' ').strip
178
- },
179
- received_scopes: { name: :granular_scope_selection_v2_received_scopes }
180
- },
181
- outputs: {
182
- requested_scopes: { name: :granular_scope_selection_v2_requested_scopes },
183
- received_scopes: { name: :granular_scope_selection_v2_received_scopes }
184
- },
185
150
  options: {
186
151
  redirect_message_proc: proc do |auth_url|
187
152
  %(
@@ -190,7 +155,7 @@ module ONCCertificationG10TestKit
190
155
  [Follow this link to authorize with the SMART server](#{auth_url}).
191
156
 
192
157
  Tests will resume once Inferno receives a request at
193
- `#{config.options[:redirect_uri]}` with a state of `#{state}`.
158
+ `#{REDIRECT_URI}` with a state of `#{state}`.
194
159
  )
195
160
  end,
196
161
  ignore_missing_scopes_check: true
@@ -7,7 +7,8 @@ module ONCCertificationG10TestKit
7
7
  Patient resource.
8
8
  )
9
9
  id :g10_smart_granular_scope_selection
10
- input :requested_scopes, :received_scopes
10
+ input :received_scopes
11
+ input :smart_auth_info, type: :auth_info
11
12
 
12
13
  def resources_with_granular_scopes
13
14
  ['Condition', 'Observation']
@@ -26,8 +27,8 @@ module ONCCertificationG10TestKit
26
27
  end
27
28
 
28
29
  run do
29
- assert requested_scopes.present?
30
- requested_scopes = self.requested_scopes.split
30
+ assert smart_auth_info.requested_scopes.present?
31
+ requested_scopes = smart_auth_info.requested_scopes.split
31
32
  (resources_with_granular_scopes + ['Patient']).each do |resource_type|
32
33
  assert requested_scopes.any? { |scope| scope.match(resource_level_scope_regex(resource_type)) },
33
34
  "No resource-level scope was requested for #{resource_type}"