smart_app_launch_test_kit 0.6.3 → 0.6.4
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/lib/smart_app_launch/app_redirect_test.rb +3 -0
- data/lib/smart_app_launch/backend_services_authorization_request_success_test.rb +1 -0
- data/lib/smart_app_launch/backend_services_authorization_response_body_test.rb +11 -0
- data/lib/smart_app_launch/backend_services_invalid_client_assertion_test.rb +1 -0
- data/lib/smart_app_launch/backend_services_invalid_grant_type_test.rb +1 -0
- data/lib/smart_app_launch/client_stu2_2_suite.rb +8 -0
- data/lib/smart_app_launch/client_suite/access_alca_interaction_test.rb +5 -0
- data/lib/smart_app_launch/client_suite/access_alcs_interaction_test.rb +5 -0
- data/lib/smart_app_launch/client_suite/access_alp_interaction_test.rb +4 -0
- data/lib/smart_app_launch/client_suite/access_bsca_interaction_test.rb +3 -0
- data/lib/smart_app_launch/client_suite/authorization_request_verification_test.rb +11 -0
- data/lib/smart_app_launch/client_suite/registration_alca_group.rb +1 -1
- data/lib/smart_app_launch/client_suite/registration_alca_verification_test.rb +6 -1
- data/lib/smart_app_launch/client_suite/registration_alcs_verification_test.rb +4 -1
- data/lib/smart_app_launch/client_suite/registration_alp_verification_test.rb +3 -1
- data/lib/smart_app_launch/client_suite/registration_bsca_verification_test.rb +4 -0
- data/lib/smart_app_launch/client_suite/token_request_alca_verification_test.rb +15 -0
- data/lib/smart_app_launch/client_suite/token_request_alcs_verification_test.rb +6 -0
- data/lib/smart_app_launch/client_suite/token_request_alp_verification_test.rb +9 -0
- data/lib/smart_app_launch/client_suite/token_request_bsca_verification_test.rb +9 -1
- data/lib/smart_app_launch/client_suite/token_use_verification_test.rb +2 -1
- data/lib/smart_app_launch/code_received_test.rb +4 -0
- data/lib/smart_app_launch/cors_metadata_request_test.rb +2 -0
- data/lib/smart_app_launch/cors_openid_fhir_user_claim_test.rb +2 -0
- data/lib/smart_app_launch/cors_token_exchange_test.rb +2 -0
- data/lib/smart_app_launch/cors_well_known_endpoint_test.rb +2 -0
- data/lib/smart_app_launch/ehr_launch_group.rb +4 -0
- data/lib/smart_app_launch/openid_connect_group_stu2_2.rb +1 -0
- data/lib/smart_app_launch/openid_decode_id_token_test.rb +2 -1
- data/lib/smart_app_launch/openid_fhir_user_claim_test.rb +1 -0
- data/lib/smart_app_launch/openid_required_configuration_fields_test.rb +2 -0
- data/lib/smart_app_launch/openid_retrieve_configuration_test.rb +1 -1
- data/lib/smart_app_launch/openid_retrieve_jwks_test.rb +3 -1
- data/lib/smart_app_launch/openid_token_header_test.rb +2 -0
- data/lib/smart_app_launch/openid_token_payload_test.rb +2 -0
- data/lib/smart_app_launch/requirements/generated/smart_access_brands_requirements_coverage.csv +1 -0
- data/lib/smart_app_launch/requirements/generated/smart_client_stu2_2_requirements_coverage.csv +193 -0
- data/lib/smart_app_launch/requirements/generated/smart_requirements_coverage.csv +1 -0
- data/lib/smart_app_launch/requirements/generated/smart_stu2_2_requirements_coverage.csv +305 -0
- data/lib/smart_app_launch/requirements/generated/smart_stu2_requirements_coverage.csv +1 -0
- data/lib/smart_app_launch/requirements/hl7.fhir.uv.smart-app-launch_2.0.0_Requirements.xlsx +0 -0
- data/lib/smart_app_launch/requirements/hl7.fhir.uv.smart-app-launch_2.2.0_Requirements.xlsx +0 -0
- data/lib/smart_app_launch/requirements/smart_app_launch_test_kit_requirements.csv +1017 -0
- data/lib/smart_app_launch/smart_access_brands_group.rb +1 -0
- data/lib/smart_app_launch/smart_access_brands_retrieve_bundle_test.rb +4 -1
- data/lib/smart_app_launch/smart_access_brands_validate_brands_test.rb +2 -0
- data/lib/smart_app_launch/smart_access_brands_validate_bundle_test.rb +5 -1
- data/lib/smart_app_launch/smart_access_brands_validate_endpoint_urls_test.rb +1 -0
- data/lib/smart_app_launch/smart_access_brands_validate_endpoints_test.rb +3 -1
- data/lib/smart_app_launch/smart_stu2_2_suite.rb +8 -0
- data/lib/smart_app_launch/standalone_launch_group.rb +4 -0
- data/lib/smart_app_launch/token_introspection_group_stu2_2.rb +1 -0
- data/lib/smart_app_launch/token_introspection_response_group.rb +9 -2
- data/lib/smart_app_launch/token_refresh_body_test.rb +6 -0
- data/lib/smart_app_launch/token_refresh_stu2_test.rb +2 -1
- data/lib/smart_app_launch/token_refresh_test.rb +1 -1
- data/lib/smart_app_launch/token_response_body_test_stu2_2.rb +8 -0
- data/lib/smart_app_launch/token_response_headers_test.rb +2 -0
- data/lib/smart_app_launch/version.rb +2 -2
- data/lib/smart_app_launch/well_known_capabilities_stu2_test.rb +9 -1
- data/lib/smart_app_launch/well_known_endpoint_test.rb +5 -0
- metadata +26 -4
@@ -24,6 +24,7 @@ module SMARTAppLaunch
|
|
24
24
|
input left blank. This will cause these group of retrieval group of tests to skip, rather than pass completely,
|
25
25
|
as being served at an stable location is considered a requirement of the spec.
|
26
26
|
)
|
27
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@405'
|
27
28
|
|
28
29
|
input_instructions <<~INSTRUCTIONS
|
29
30
|
For systems that make their User Access Brand Bundle available at a public endpoint, please input
|
@@ -5,7 +5,10 @@ module SMARTAppLaunch
|
|
5
5
|
description %(
|
6
6
|
Verify that the publisher's User Access Brands Bundle can be publicly
|
7
7
|
accessed at the supplied URL location.
|
8
|
-
|
8
|
+
)
|
9
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@396',
|
10
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@400',
|
11
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@423'
|
9
12
|
|
10
13
|
makes_request :bundle_request
|
11
14
|
|
@@ -12,6 +12,8 @@ module SMARTAppLaunch
|
|
12
12
|
|
13
13
|
This test does not currently validate availability or format of Brand or Portal logos.
|
14
14
|
)
|
15
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@396',
|
16
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@402'
|
15
17
|
|
16
18
|
input :user_access_brands_bundle,
|
17
19
|
optional: true
|
@@ -7,7 +7,11 @@ module SMARTAppLaunch
|
|
7
7
|
[User Access Brand Bundle Profile](https://hl7.org/fhir/smart-app-launch/STU2.2/StructureDefinition-user-access-brands-bundle.html).
|
8
8
|
|
9
9
|
This test also ensures the Bundle is the 'collection' type and that it is not empty.
|
10
|
-
|
10
|
+
)
|
11
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@396',
|
12
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@398',
|
13
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@417',
|
14
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@418'
|
11
15
|
|
12
16
|
input :user_access_brands_bundle,
|
13
17
|
optional: true
|
@@ -8,7 +8,9 @@ module SMARTAppLaunch
|
|
8
8
|
|
9
9
|
Along with validating the Endpoint resources, this test also ensures that each endpoint contains a primary brand
|
10
10
|
by checking if it is referenced by at least 1 Organization resource.
|
11
|
-
|
11
|
+
)
|
12
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@396',
|
13
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@402'
|
12
14
|
|
13
15
|
def find_referenced_org(bundle_resource, endpoint_id)
|
14
16
|
bundle_resource
|
@@ -38,6 +38,14 @@ module SMARTAppLaunch
|
|
38
38
|
post_authorization_uri: "#{Inferno::Application['base_url']}/custom/smart_stu2_2/post_auth"
|
39
39
|
}
|
40
40
|
|
41
|
+
requirement_sets(
|
42
|
+
{
|
43
|
+
identifier: 'hl7.fhir.uv.smart-app-launch_2.2.0',
|
44
|
+
title: 'SMART App Launch',
|
45
|
+
actor: 'Server'
|
46
|
+
}
|
47
|
+
)
|
48
|
+
|
41
49
|
description <<~DESCRIPTION
|
42
50
|
The SMART App Launch Test Suite verifies that systems correctly implement
|
43
51
|
the [SMART App Launch IG](http://hl7.org/fhir/smart-app-launch/STU2.2/)
|
@@ -39,6 +39,7 @@ module SMARTAppLaunch
|
|
39
39
|
|
40
40
|
See the individual test groups for more details and guidance.
|
41
41
|
)
|
42
|
+
|
42
43
|
group from: :smart_token_introspection_access_token_group_stu2_2
|
43
44
|
|
44
45
|
access_token_group_index = children.find_index { |child| child.id.to_s.end_with? 'access_token_group' }
|
@@ -28,7 +28,6 @@ module SMARTAppLaunch
|
|
28
28
|
|
29
29
|
test do
|
30
30
|
title 'Token introspection response for an active token contains required fields'
|
31
|
-
|
32
31
|
description %(
|
33
32
|
This test will check whether the metadata in the token introspection response is correct for an active token and
|
34
33
|
that the response data matches the data in the original access token and/or access token response from the
|
@@ -46,12 +45,20 @@ module SMARTAppLaunch
|
|
46
45
|
launch context parameter(s)
|
47
46
|
* Parameters checked for are `patient` and `encounter`
|
48
47
|
* IF identity token was included as part of access token response, `iss` and `sub` claims are present in the
|
49
|
-
introspection response and match those of the
|
48
|
+
introspection response and match those of the original ID token
|
50
49
|
|
51
50
|
Optional but Recommended:
|
52
51
|
* IF identity token was included as part of access token response, `fhirUser` claim SHOULD be present in
|
53
52
|
introspection response and should match the claim in the ID token
|
54
53
|
)
|
54
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@95',
|
55
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@273',
|
56
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@274',
|
57
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@275',
|
58
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@276',
|
59
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@277',
|
60
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@278',
|
61
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@279'
|
55
62
|
|
56
63
|
input :standalone_smart_auth_info, type: :auth_info, options: { mode: 'access' }
|
57
64
|
|
@@ -14,6 +14,12 @@ module SMARTAppLaunch
|
|
14
14
|
|
15
15
|
Scopes returned must be a strict subset of the scopes granted in the original launch.
|
16
16
|
)
|
17
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@110',
|
18
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@111',
|
19
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@112',
|
20
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@113',
|
21
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@114'
|
22
|
+
|
17
23
|
input :received_scopes
|
18
24
|
input :smart_auth_info, type: :auth_info, options: { mode: 'auth' }
|
19
25
|
output :refresh_token, :access_token, :token_retrieval_time, :expires_in, :received_scopes, :smart_auth_info
|
@@ -14,8 +14,9 @@ module SMARTAppLaunch
|
|
14
14
|
Launch Guide, the token refresh response should include the HTTP
|
15
15
|
Cache-Control response header field with a value of no-store, as well as
|
16
16
|
the Pragma response header field with a value of no-cache to be
|
17
|
-
consistent with the requirements of the
|
17
|
+
consistent with the requirements of the initial access token exchange.
|
18
18
|
)
|
19
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@109'
|
19
20
|
|
20
21
|
input :smart_auth_info, type: :auth_info, options: { mode: 'auth' }
|
21
22
|
|
@@ -14,7 +14,7 @@ module SMARTAppLaunch
|
|
14
14
|
Launch Guide, the token refresh response should include the HTTP
|
15
15
|
Cache-Control response header field with a value of no-store, as well as
|
16
16
|
the Pragma response header field with a value of no-cache to be
|
17
|
-
consistent with the requirements of the
|
17
|
+
consistent with the requirements of the initial access token exchange.
|
18
18
|
)
|
19
19
|
input :received_scopes
|
20
20
|
input :smart_auth_info, type: :auth_info, options: { mode: 'auth' }
|
@@ -12,7 +12,15 @@ module SMARTAppLaunch
|
|
12
12
|
|
13
13
|
The format of the optional `fhirContext` field is validated if present.
|
14
14
|
)
|
15
|
+
|
15
16
|
id :smart_token_response_body_stu2_2
|
17
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@73',
|
18
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@74',
|
19
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@75',
|
20
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@78',
|
21
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@84',
|
22
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@172',
|
23
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@178'
|
16
24
|
|
17
25
|
input :smart_auth_info, type: :auth_info, options: { mode: 'auth' }
|
18
26
|
output :id_token,
|
@@ -10,7 +10,15 @@ module SMARTAppLaunch
|
|
10
10
|
If the `sso-openid-connect` capability is supported, then `issuer` and `jwks_uri` must be
|
11
11
|
present. If `sso-openid-connect` capability is not supported, then `issuer` must be omitted.
|
12
12
|
)
|
13
|
-
|
13
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@30',
|
14
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@373',
|
15
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@381',
|
16
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@382',
|
17
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@383',
|
18
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@385',
|
19
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@393',
|
20
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@394'
|
21
|
+
|
14
22
|
def required_capabilities
|
15
23
|
{
|
16
24
|
'authorization_endpoint' => String,
|
@@ -10,6 +10,11 @@ module SMARTAppLaunch
|
|
10
10
|
The authorization endpoints accepted by a FHIR resource server can
|
11
11
|
be exposed as a Well-Known Uniform Resource Identifier
|
12
12
|
)
|
13
|
+
verifies_requirements 'hl7.fhir.uv.smart-app-launch_2.2.0@30',
|
14
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@372',
|
15
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@374',
|
16
|
+
'hl7.fhir.uv.smart-app-launch_2.2.0@377'
|
17
|
+
|
13
18
|
input :url,
|
14
19
|
title: 'FHIR Endpoint',
|
15
20
|
description: 'URL of the FHIR endpoint used by SMART applications'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_app_launch_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inferno_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.6.
|
19
|
+
version: 0.6.15
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.6.
|
26
|
+
version: 0.6.15
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json-jwt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.1.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: roo
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 2.10.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 2.10.1
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -229,6 +243,14 @@ files:
|
|
229
243
|
- lib/smart_app_launch/openid_token_header_test.rb
|
230
244
|
- lib/smart_app_launch/openid_token_payload_test.rb
|
231
245
|
- lib/smart_app_launch/post_auth.html
|
246
|
+
- lib/smart_app_launch/requirements/generated/smart_access_brands_requirements_coverage.csv
|
247
|
+
- lib/smart_app_launch/requirements/generated/smart_client_stu2_2_requirements_coverage.csv
|
248
|
+
- lib/smart_app_launch/requirements/generated/smart_requirements_coverage.csv
|
249
|
+
- lib/smart_app_launch/requirements/generated/smart_stu2_2_requirements_coverage.csv
|
250
|
+
- lib/smart_app_launch/requirements/generated/smart_stu2_requirements_coverage.csv
|
251
|
+
- lib/smart_app_launch/requirements/hl7.fhir.uv.smart-app-launch_2.0.0_Requirements.xlsx
|
252
|
+
- lib/smart_app_launch/requirements/hl7.fhir.uv.smart-app-launch_2.2.0_Requirements.xlsx
|
253
|
+
- lib/smart_app_launch/requirements/smart_app_launch_test_kit_requirements.csv
|
232
254
|
- lib/smart_app_launch/smart_access_brands_examples/r4_capability_statement.json
|
233
255
|
- lib/smart_app_launch/smart_access_brands_examples/smart_access_brands_example.json.erb
|
234
256
|
- lib/smart_app_launch/smart_access_brands_group.rb
|