onc_certification_g10_test_kit 7.1.0 → 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.
- checksums.yaml +4 -4
- data/config/presets/g10_reference_server_preset.json +708 -532
- data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +73 -67
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu1.rb +1 -2
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu2.rb +7 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_parameters.rb +1 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_stu1.rb +10 -2
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +6 -2
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +4 -0
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +1 -1
- data/lib/onc_certification_g10_test_kit/encounter_context_test.rb +3 -3
- data/lib/onc_certification_g10_test_kit/export_kick_off_performer.rb +7 -3
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +0 -4
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +8 -4
- data/lib/onc_certification_g10_test_kit/patient_context_test.rb +3 -3
- data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +3 -10
- data/lib/onc_certification_g10_test_kit/scope_constants.rb +52 -0
- data/lib/onc_certification_g10_test_kit/short_id_map.yml +11 -20
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +107 -64
- data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +41 -88
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +31 -41
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +30 -52
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +32 -53
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +99 -142
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +16 -54
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +16 -54
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +16 -54
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +16 -54
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +29 -64
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_test.rb +4 -3
- data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +39 -83
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +42 -86
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +50 -88
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_refresh_test.rb +9 -6
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +86 -278
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +30 -57
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +34 -73
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +34 -73
- data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +6 -1
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +88 -116
- data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +60 -114
- data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +2 -11
- data/lib/onc_certification_g10_test_kit/token_introspection_group.rb +12 -25
- data/lib/onc_certification_g10_test_kit/token_introspection_group_stu2_2.rb +12 -14
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +44 -33
- data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +3 -3
- data/lib/onc_certification_g10_test_kit/version.rb +2 -2
- data/lib/onc_certification_g10_test_kit.rb +104 -40
- metadata +9 -8
@@ -47,17 +47,17 @@ module ONCCertificationG10TestKit
|
|
47
47
|
ID from the SMART App Launch contain all MUST SUPPORT elements.
|
48
48
|
DESCRIPTION
|
49
49
|
optional: true
|
50
|
-
input :
|
50
|
+
input :smart_auth_info,
|
51
51
|
title: 'SMART App Launch Credentials',
|
52
|
-
type: :
|
52
|
+
type: :auth_info,
|
53
53
|
locked: true
|
54
54
|
|
55
55
|
fhir_client do
|
56
56
|
url :url
|
57
|
-
|
57
|
+
auth_info :smart_auth_info
|
58
58
|
end
|
59
59
|
|
60
|
-
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :
|
60
|
+
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :smart_auth_info
|
61
61
|
|
62
62
|
config(
|
63
63
|
options: {
|
@@ -48,14 +48,14 @@ module ONCCertificationG10TestKit
|
|
48
48
|
ID from the SMART App Launch contain all MUST SUPPORT elements.
|
49
49
|
DESCRIPTION
|
50
50
|
optional: true
|
51
|
-
input :
|
51
|
+
input :smart_auth_info,
|
52
52
|
title: 'SMART App Launch Credentials',
|
53
|
-
type: :
|
53
|
+
type: :auth_info,
|
54
54
|
locked: true
|
55
55
|
|
56
56
|
fhir_client do
|
57
57
|
url :url
|
58
|
-
|
58
|
+
auth_info :smart_auth_info
|
59
59
|
end
|
60
60
|
|
61
61
|
# These tests can still be run if the user runs the entire suite at once
|
@@ -63,7 +63,7 @@ module ONCCertificationG10TestKit
|
|
63
63
|
false
|
64
64
|
end
|
65
65
|
|
66
|
-
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :
|
66
|
+
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :smart_auth_info
|
67
67
|
|
68
68
|
config(
|
69
69
|
options: {
|
@@ -48,17 +48,17 @@ module ONCCertificationG10TestKit
|
|
48
48
|
ID from the SMART App Launch contain all MUST SUPPORT elements.
|
49
49
|
DESCRIPTION
|
50
50
|
optional: true
|
51
|
-
input :
|
51
|
+
input :smart_auth_info,
|
52
52
|
title: 'SMART App Launch Credentials',
|
53
|
-
type: :
|
53
|
+
type: :auth_info,
|
54
54
|
locked: true
|
55
55
|
|
56
56
|
fhir_client do
|
57
57
|
url :url
|
58
|
-
|
58
|
+
auth_info :smart_auth_info
|
59
59
|
end
|
60
60
|
|
61
|
-
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :
|
61
|
+
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :smart_auth_info
|
62
62
|
|
63
63
|
config(
|
64
64
|
options: {
|
@@ -48,17 +48,17 @@ module ONCCertificationG10TestKit
|
|
48
48
|
ID from the SMART App Launch contain all MUST SUPPORT elements.
|
49
49
|
DESCRIPTION
|
50
50
|
optional: true
|
51
|
-
input :
|
51
|
+
input :smart_auth_info,
|
52
52
|
title: 'SMART App Launch Credentials',
|
53
|
-
type: :
|
53
|
+
type: :auth_info,
|
54
54
|
locked: true
|
55
55
|
|
56
56
|
fhir_client do
|
57
57
|
url :url
|
58
|
-
|
58
|
+
auth_info :smart_auth_info
|
59
59
|
end
|
60
60
|
|
61
|
-
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :
|
61
|
+
input_order :url, :patient_id, :additional_patient_ids, :implantable_device_codes, :smart_auth_info
|
62
62
|
|
63
63
|
config(
|
64
64
|
options: {
|
@@ -1,5 +1,9 @@
|
|
1
|
+
require_relative 'scope_constants'
|
2
|
+
|
1
3
|
module ONCCertificationG10TestKit
|
2
4
|
class SMARTAppLaunchInvalidAudGroup < Inferno::TestGroup
|
5
|
+
include ScopeConstants
|
6
|
+
|
3
7
|
title 'Invalid AUD Parameter'
|
4
8
|
short_title 'Invalid AUD Launch'
|
5
9
|
input_instructions %(
|
@@ -37,40 +41,16 @@ module ONCCertificationG10TestKit
|
|
37
41
|
|
38
42
|
config(
|
39
43
|
inputs: {
|
40
|
-
|
41
|
-
name: :
|
42
|
-
title: 'Standalone
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
name: :standalone_requested_scopes,
|
47
|
-
title: 'Standalone Scope',
|
48
|
-
description: 'OAuth 2.0 scope provided by system to enable all required functionality',
|
49
|
-
type: 'textarea',
|
50
|
-
default: %(
|
51
|
-
launch/patient openid fhirUser offline_access
|
52
|
-
patient/Medication.read patient/AllergyIntolerance.read
|
53
|
-
patient/CarePlan.read patient/CareTeam.read patient/Condition.read
|
54
|
-
patient/Device.read patient/DiagnosticReport.read
|
55
|
-
patient/DocumentReference.read patient/Encounter.read
|
56
|
-
patient/Goal.read patient/Immunization.read patient/Location.read
|
57
|
-
patient/MedicationRequest.read patient/Observation.read
|
58
|
-
patient/Organization.read patient/Patient.read
|
59
|
-
patient/Practitioner.read patient/Procedure.read
|
60
|
-
patient/Provenance.read patient/PractitionerRole.read
|
61
|
-
).gsub(/\s{2,}/, ' ').strip
|
44
|
+
smart_auth_info: {
|
45
|
+
name: :standalone_smart_auth_info,
|
46
|
+
title: 'Standalone Launch Credentials',
|
47
|
+
options: {
|
48
|
+
mode: 'auth'
|
49
|
+
}
|
62
50
|
},
|
63
51
|
url: {
|
64
52
|
title: 'Standalone FHIR Endpoint',
|
65
53
|
description: 'URL of the FHIR endpoint used by standalone applications'
|
66
|
-
},
|
67
|
-
smart_authorization_url: {
|
68
|
-
title: 'OAuth 2.0 Authorize Endpoint',
|
69
|
-
description: 'OAuth 2.0 Authorize Endpoint provided during the patient standalone launch'
|
70
|
-
},
|
71
|
-
smart_token_url: {
|
72
|
-
title: 'OAuth 2.0 Token Endpoint',
|
73
|
-
description: 'OAuth 2.0 Token Endpoint provided during the patient standalone launch'
|
74
54
|
}
|
75
55
|
},
|
76
56
|
outputs: {
|
@@ -81,21 +61,38 @@ module ONCCertificationG10TestKit
|
|
81
61
|
}
|
82
62
|
)
|
83
63
|
|
84
|
-
input_order :url,
|
85
|
-
:standalone_client_id,
|
86
|
-
:standalone_client_secret,
|
87
|
-
:standalone_requested_scopes,
|
88
|
-
:use_pkce,
|
89
|
-
:pkce_code_challenge_method,
|
90
|
-
:smart_authorization_url
|
91
|
-
|
92
64
|
test from: :smart_app_redirect do
|
93
65
|
required_suite_options G10Options::SMART_1_REQUIREMENT
|
94
66
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
67
|
+
config(
|
68
|
+
inputs: {
|
69
|
+
smart_auth_info: {
|
70
|
+
name: :standalone_smart_auth_info,
|
71
|
+
options: {
|
72
|
+
components: [
|
73
|
+
{
|
74
|
+
name: :auth_type,
|
75
|
+
default: 'symmetric',
|
76
|
+
locked: true
|
77
|
+
},
|
78
|
+
{
|
79
|
+
name: :auth_request_method,
|
80
|
+
default: 'GET',
|
81
|
+
locked: true
|
82
|
+
},
|
83
|
+
{
|
84
|
+
name: :use_discovery,
|
85
|
+
locked: true
|
86
|
+
},
|
87
|
+
{
|
88
|
+
name: :requested_scopes,
|
89
|
+
default: STANDALONE_SMART_1_SCOPES
|
90
|
+
}
|
91
|
+
]
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
95
|
+
)
|
99
96
|
|
100
97
|
def aud
|
101
98
|
'https://inferno.healthit.gov/invalid_aud'
|
@@ -122,21 +119,44 @@ module ONCCertificationG10TestKit
|
|
122
119
|
|
123
120
|
config(
|
124
121
|
inputs: {
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
122
|
+
smart_auth_info: {
|
123
|
+
name: :standalone_smart_auth_info,
|
124
|
+
options: {
|
125
|
+
components: [
|
126
|
+
{
|
127
|
+
name: :auth_type,
|
128
|
+
default: 'symmetric',
|
129
|
+
locked: true
|
130
|
+
},
|
131
|
+
{
|
132
|
+
name: :auth_request_method,
|
133
|
+
default: 'GET',
|
134
|
+
locked: true
|
135
|
+
},
|
136
|
+
{
|
137
|
+
name: :use_discovery,
|
138
|
+
locked: true
|
139
|
+
},
|
140
|
+
{
|
141
|
+
name: :requested_scopes,
|
142
|
+
default: STANDALONE_SMART_2_SCOPES
|
143
|
+
},
|
144
|
+
{
|
145
|
+
name: :pkce_support,
|
146
|
+
default: 'enabled',
|
147
|
+
locked: true
|
148
|
+
},
|
149
|
+
{
|
150
|
+
name: :pkce_code_challenge_method,
|
151
|
+
default: 'S256',
|
152
|
+
locked: true
|
153
|
+
}
|
154
|
+
]
|
155
|
+
}
|
131
156
|
}
|
132
157
|
}
|
133
158
|
)
|
134
159
|
|
135
|
-
input :client_secret,
|
136
|
-
name: :standalone_client_secret,
|
137
|
-
title: 'Standalone Client Secret',
|
138
|
-
description: 'Client Secret provided during registration of Inferno as a standalone application'
|
139
|
-
|
140
160
|
def aud
|
141
161
|
'https://inferno.healthit.gov/invalid_aud'
|
142
162
|
end
|
@@ -161,21 +181,44 @@ module ONCCertificationG10TestKit
|
|
161
181
|
|
162
182
|
config(
|
163
183
|
inputs: {
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
184
|
+
smart_auth_info: {
|
185
|
+
name: :standalone_smart_auth_info,
|
186
|
+
options: {
|
187
|
+
components: [
|
188
|
+
{
|
189
|
+
name: :auth_type,
|
190
|
+
default: 'symmetric',
|
191
|
+
locked: true
|
192
|
+
},
|
193
|
+
{
|
194
|
+
name: :auth_request_method,
|
195
|
+
default: 'GET',
|
196
|
+
locked: true
|
197
|
+
},
|
198
|
+
{
|
199
|
+
name: :use_discovery,
|
200
|
+
locked: true
|
201
|
+
},
|
202
|
+
{
|
203
|
+
name: :requested_scopes,
|
204
|
+
default: STANDALONE_SMART_2_SCOPES
|
205
|
+
},
|
206
|
+
{
|
207
|
+
name: :pkce_support,
|
208
|
+
default: 'enabled',
|
209
|
+
locked: true
|
210
|
+
},
|
211
|
+
{
|
212
|
+
name: :pkce_code_challenge_method,
|
213
|
+
default: 'S256',
|
214
|
+
locked: true
|
215
|
+
}
|
216
|
+
]
|
217
|
+
}
|
170
218
|
}
|
171
219
|
}
|
172
220
|
)
|
173
221
|
|
174
|
-
input :client_secret,
|
175
|
-
name: :standalone_client_secret,
|
176
|
-
title: 'Standalone Client Secret',
|
177
|
-
description: 'Client Secret provided during registration of Inferno as a standalone application'
|
178
|
-
|
179
222
|
def aud
|
180
223
|
'https://inferno.healthit.gov/invalid_aud'
|
181
224
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require_relative 'base_token_refresh_stu2_group'
|
2
2
|
require_relative 'patient_context_test'
|
3
|
+
require_relative 'scope_constants'
|
3
4
|
|
4
5
|
module ONCCertificationG10TestKit
|
5
6
|
class SMARTAsymmetricLaunchGroup < Inferno::TestGroup
|
7
|
+
include ScopeConstants
|
8
|
+
|
6
9
|
title 'Asymmetric Client Standalone Launch'
|
7
10
|
short_title 'Asymmetric Client Launch'
|
8
11
|
description %(
|
@@ -46,35 +49,37 @@ module ONCCertificationG10TestKit
|
|
46
49
|
|
47
50
|
config(
|
48
51
|
inputs: {
|
49
|
-
|
50
|
-
name: :
|
51
|
-
title: 'Asymmetric Launch
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
52
|
+
smart_auth_info: {
|
53
|
+
name: :asymmetric_smart_auth_info,
|
54
|
+
title: 'Asymmetric Launch Credentials',
|
55
|
+
options: {
|
56
|
+
mode: 'auth',
|
57
|
+
components: [
|
58
|
+
{
|
59
|
+
name: :auth_type,
|
60
|
+
default: 'asymmetric',
|
61
|
+
locked: true
|
62
|
+
},
|
63
|
+
{
|
64
|
+
name: :requested_scopes,
|
65
|
+
default: STANDALONE_SMART_2_SCOPES
|
66
|
+
},
|
67
|
+
{
|
68
|
+
name: :pkce_support,
|
69
|
+
default: 'enabled',
|
70
|
+
locked: true
|
71
|
+
},
|
72
|
+
{
|
73
|
+
name: :pkce_code_challenge_method,
|
74
|
+
default: 'S256',
|
75
|
+
locked: true
|
76
|
+
},
|
77
|
+
{
|
78
|
+
name: :jwks,
|
79
|
+
locked: true
|
80
|
+
}
|
81
|
+
]
|
82
|
+
}
|
78
83
|
},
|
79
84
|
code: {
|
80
85
|
name: :asymmetric_code
|
@@ -82,49 +87,22 @@ module ONCCertificationG10TestKit
|
|
82
87
|
state: {
|
83
88
|
name: :asymmetric_state
|
84
89
|
},
|
85
|
-
smart_authorization_url: {
|
86
|
-
title: 'OAuth 2.0 Authorize Endpoint',
|
87
|
-
description: 'OAuth 2.0 Authorize Endpoint provided during the patient standalone launch'
|
88
|
-
},
|
89
|
-
smart_credentials: {
|
90
|
-
name: :asymmetric_smart_credentials
|
91
|
-
},
|
92
|
-
use_pkce: {
|
93
|
-
default: 'true',
|
94
|
-
locked: true
|
95
|
-
},
|
96
|
-
pkce_code_challenge_method: {
|
97
|
-
locked: true
|
98
|
-
},
|
99
|
-
client_auth_type: {
|
100
|
-
name: :asymmetric_client_auth_type,
|
101
|
-
locked: true,
|
102
|
-
default: 'confidential_asymmetric'
|
103
|
-
},
|
104
|
-
refresh_token: {
|
105
|
-
name: :asymmetric_refresh_token
|
106
|
-
},
|
107
90
|
received_scopes: {
|
108
91
|
name: :asymmetric_received_scopes
|
109
92
|
},
|
110
|
-
|
111
|
-
name: :
|
112
|
-
locked: false
|
93
|
+
patient_id: {
|
94
|
+
name: :asymmetric_patient_id
|
113
95
|
}
|
114
96
|
},
|
115
97
|
outputs: {
|
116
|
-
access_token: { name: :asymmetric_access_token },
|
117
98
|
code: { name: :asymmetric_code },
|
118
99
|
encounter_id: { name: :asymmetric_encounter_id },
|
119
|
-
expires_in: { name: :asymmetric_expires_in },
|
120
100
|
id_token: { name: :asymmetric_id_token },
|
121
101
|
intent: { name: :asymmetric_intent },
|
122
102
|
patient_id: { name: :asymmetric_patient_id },
|
123
103
|
received_scopes: { name: :asymmetric_received_scopes },
|
124
|
-
|
125
|
-
|
126
|
-
state: { name: :asymmetric_state },
|
127
|
-
token_retrieval_time: { name: :asymmetric_token_retrieval_time }
|
104
|
+
smart_auth_info: { name: :asymmetric_smart_auth_info },
|
105
|
+
state: { name: :asymmetric_state }
|
128
106
|
},
|
129
107
|
requests: {
|
130
108
|
redirect: { name: :asymmetric_redirect },
|
@@ -132,16 +110,6 @@ module ONCCertificationG10TestKit
|
|
132
110
|
}
|
133
111
|
)
|
134
112
|
|
135
|
-
input_order :url,
|
136
|
-
:asymmetric_client_id,
|
137
|
-
:asymmetric_client_secret,
|
138
|
-
:asymmetric_requested_scopes,
|
139
|
-
:use_pkce,
|
140
|
-
:pkce_code_challenge_method,
|
141
|
-
:authorization_method,
|
142
|
-
:asymmetric_client_auth_type,
|
143
|
-
:client_auth_encryption_method
|
144
|
-
|
145
113
|
group from: :smart_discovery_stu2,
|
146
114
|
required_suite_options: G10Options::SMART_2_REQUIREMENT
|
147
115
|
group from: :smart_discovery_stu2_2, # rubocop:disable Naming/VariableNumber
|
@@ -149,13 +117,7 @@ module ONCCertificationG10TestKit
|
|
149
117
|
|
150
118
|
group from: :smart_standalone_launch_stu2 do
|
151
119
|
required_suite_options(G10Options::SMART_2_REQUIREMENT)
|
152
|
-
test from: :g10_patient_context
|
153
|
-
config: {
|
154
|
-
inputs: {
|
155
|
-
patient_id: { name: :asymmetric_patient_id },
|
156
|
-
smart_credentials: { name: :asymmetric_smart_credentials }
|
157
|
-
}
|
158
|
-
}
|
120
|
+
test from: :g10_patient_context
|
159
121
|
|
160
122
|
test do
|
161
123
|
title 'OAuth token exchange response contains OpenID Connect id_token'
|
@@ -175,15 +137,10 @@ module ONCCertificationG10TestKit
|
|
175
137
|
end
|
176
138
|
end
|
177
139
|
end
|
140
|
+
|
178
141
|
group from: :smart_standalone_launch_stu2_2 do # rubocop:disable Naming/VariableNumber
|
179
142
|
required_suite_options(G10Options::SMART_2_2_REQUIREMENT)
|
180
|
-
test from: :g10_patient_context
|
181
|
-
config: {
|
182
|
-
inputs: {
|
183
|
-
patient_id: { name: :asymmetric_patient_id },
|
184
|
-
smart_credentials: { name: :asymmetric_smart_credentials }
|
185
|
-
}
|
186
|
-
}
|
143
|
+
test from: :g10_patient_context
|
187
144
|
|
188
145
|
test do
|
189
146
|
title 'OAuth token exchange response contains OpenID Connect id_token'
|
@@ -209,10 +166,6 @@ module ONCCertificationG10TestKit
|
|
209
166
|
|
210
167
|
test from: :g10_patient_context do
|
211
168
|
config(
|
212
|
-
inputs: {
|
213
|
-
patient_id: { name: :asymmetric_patient_id },
|
214
|
-
smart_credentials: { name: :asymmetric_smart_credentials }
|
215
|
-
},
|
216
169
|
options: {
|
217
170
|
refresh_test: true
|
218
171
|
}
|
@@ -33,17 +33,28 @@ module ONCCertificationG10TestKit
|
|
33
33
|
|
34
34
|
config(
|
35
35
|
inputs: {
|
36
|
-
|
37
|
-
name: :
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
smart_auth_info: {
|
37
|
+
name: :ehr_patient_smart_auth_info,
|
38
|
+
title: 'EHR Launch with Patient Scopes Credentials',
|
39
|
+
options: {
|
40
|
+
mode: 'auth',
|
41
|
+
components: [
|
42
|
+
{
|
43
|
+
name: :auth_type,
|
44
|
+
default: 'symmetric',
|
45
|
+
locked: true
|
46
|
+
},
|
47
|
+
{
|
48
|
+
name: :requested_scopes,
|
49
|
+
default: 'launch openid fhirUser offline_access patient/Patient.read',
|
50
|
+
locked: true
|
51
|
+
},
|
52
|
+
{
|
53
|
+
name: :use_discovery,
|
54
|
+
locked: true
|
55
|
+
}
|
56
|
+
]
|
57
|
+
}
|
47
58
|
},
|
48
59
|
code: {
|
49
60
|
name: :ehr_patient_code
|
@@ -57,33 +68,20 @@ module ONCCertificationG10TestKit
|
|
57
68
|
received_scopes: {
|
58
69
|
name: :ehr_patient_received_scopes
|
59
70
|
},
|
60
|
-
|
61
|
-
name: :
|
62
|
-
},
|
63
|
-
smart_authorization_url: {
|
64
|
-
title: 'OAuth 2.0 Authorize Endpoint',
|
65
|
-
description: 'OAuth 2.0 Authorize Endpoint provided during the EHR launch'
|
66
|
-
},
|
67
|
-
smart_token_url: {
|
68
|
-
title: 'OAuth 2.0 Token Endpoint',
|
69
|
-
description: 'OAuth 2.0 Token Endpoint provided during the EHR launch'
|
71
|
+
patient_id: {
|
72
|
+
name: :ehr_patient_patient_id
|
70
73
|
}
|
71
74
|
},
|
72
75
|
outputs: {
|
73
76
|
launch: { name: :ehr_patient_launch },
|
74
77
|
code: { name: :ehr_patient_code },
|
75
|
-
token_retrieval_time: { name: :ehr_patient_token_retrieval_time },
|
76
78
|
state: { name: :ehr_patient_state },
|
77
79
|
id_token: { name: :ehr_patient_id_token },
|
78
|
-
refresh_token: { name: :ehr_patient_refresh_token },
|
79
|
-
access_token: { name: :ehr_patient_access_token },
|
80
|
-
expires_in: { name: :ehr_patient_expires_in },
|
81
80
|
patient_id: { name: :ehr_patient_patient_id },
|
82
81
|
encounter_id: { name: :ehr_patient_encounter_id },
|
83
82
|
received_scopes: { name: :ehr_patient_received_scopes },
|
84
|
-
requested_scopes: { name: :ehr_patient_requested_scopes },
|
85
83
|
intent: { name: :ehr_patient_intent },
|
86
|
-
|
84
|
+
smart_auth_info: { name: :ehr_patient_smart_auth_info }
|
87
85
|
},
|
88
86
|
requests: {
|
89
87
|
redirect: { name: :ehr_patient_redirect },
|
@@ -91,20 +89,7 @@ module ONCCertificationG10TestKit
|
|
91
89
|
}
|
92
90
|
)
|
93
91
|
|
94
|
-
|
95
|
-
:ehr_patient_client_id,
|
96
|
-
:ehr_patient_client_secret,
|
97
|
-
:smart_authorization_url,
|
98
|
-
:smart_token_url,
|
99
|
-
:ehr_patient_requested_scopes
|
100
|
-
|
101
|
-
test from: :g10_patient_context,
|
102
|
-
config: {
|
103
|
-
inputs: {
|
104
|
-
patient_id: { name: :ehr_patient_patient_id },
|
105
|
-
smart_credentials: { name: :ehr_patient_smart_credentials }
|
106
|
-
}
|
107
|
-
}
|
92
|
+
test from: :g10_patient_context
|
108
93
|
|
109
94
|
test from: :g10_patient_scope,
|
110
95
|
config: {
|
@@ -112,5 +97,10 @@ module ONCCertificationG10TestKit
|
|
112
97
|
scope_version: :v1
|
113
98
|
}
|
114
99
|
}
|
100
|
+
|
101
|
+
test from: :well_known_endpoint
|
102
|
+
|
103
|
+
# Move the well-known endpoint test to the beginning
|
104
|
+
children.prepend(children.pop)
|
115
105
|
end
|
116
106
|
end
|