subscriptions_test_kit 0.12.0 → 0.12.1
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/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_payload_verification_test.rb +2 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/notification_input_verification_test.rb +2 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb +13 -4
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/subscription_verification_test.rb +1 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb +10 -2
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client_suite.rb +3 -0
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb +6 -1
- data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/subscription_conformance_test.rb +2 -1
- data/lib/subscriptions_test_kit/version.rb +2 -2
- metadata +18 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10ffb662d80a36170cabd608e69c7a776d7aab12ed7c32e347e7b32f68d8b8dd
|
|
4
|
+
data.tar.gz: 30b825cba5b772ed7265385ee247f3a22648aa07ea1d31dfb86917f1cee1a610
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ae18d19fe351b026841bf6627195a09ad96156ddbc9fd28a36e9501a93c52a424cdba615edcd8c915f99e24572171633a3780e86936b5d4a6e82024e3d773978
|
|
7
|
+
data.tar.gz: 020a331e5cd162b763a6adeb3ebb6076828f63104faa8849b5b464ccc5c53e1a740eb73b03c35c95ff4a8bab9e319924662b32e3af02a59d6bcca83ace512f14
|
|
@@ -12,12 +12,13 @@ module SubscriptionsTestKit
|
|
|
12
12
|
include SubscriptionSimulationUtils
|
|
13
13
|
|
|
14
14
|
id :subscriptions_r4_client_notification_input_payload_verification
|
|
15
|
-
title '
|
|
15
|
+
title 'Notification Bundle Input Conformance Verification for Payload Content'
|
|
16
16
|
description %(
|
|
17
17
|
This test verifies that the notification bundle sent by Inferno meets the requirements
|
|
18
18
|
of the payload indicated in the subscription created by the client under test.
|
|
19
19
|
The content of the notification will be based on the Bundle provided by the tester.
|
|
20
20
|
)
|
|
21
|
+
simulation_verification
|
|
21
22
|
|
|
22
23
|
run do
|
|
23
24
|
subscription = find_subscription(test_session_id)
|
|
@@ -8,13 +8,14 @@ module SubscriptionsTestKit
|
|
|
8
8
|
include NotificationConformanceVerification
|
|
9
9
|
|
|
10
10
|
id :subscriptions_r4_client_notification_input_verification
|
|
11
|
-
title '
|
|
11
|
+
title 'Notification Bundle Input Conformance Verification'
|
|
12
12
|
description %(
|
|
13
13
|
This test verifies that the notification bundle sent is conformant
|
|
14
14
|
to the [R4 Topic-Based Subscription Notification Bundle
|
|
15
15
|
profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-notification-r4.html).
|
|
16
16
|
The content of the notification will be based on the Bundle provided by the tester.
|
|
17
17
|
)
|
|
18
|
+
simulation_verification
|
|
18
19
|
|
|
19
20
|
run do
|
|
20
21
|
load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
|
|
@@ -17,18 +17,27 @@ module SubscriptionsTestKit
|
|
|
17
17
|
Subscription.
|
|
18
18
|
)
|
|
19
19
|
|
|
20
|
+
output :attest_true_url
|
|
21
|
+
output :attest_false_url
|
|
22
|
+
|
|
20
23
|
run do
|
|
21
24
|
load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
|
|
22
25
|
skip_if(requests.none?, 'Inferno did not send an event notification')
|
|
23
|
-
|
|
26
|
+
|
|
27
|
+
identifier = test_session_id
|
|
28
|
+
attest_true_url = "#{resume_pass_url_client}?test_run_identifier=#{identifier}"
|
|
29
|
+
output(attest_true_url:)
|
|
30
|
+
attest_false_url = "#{resume_fail_url_client}?test_run_identifier=#{identifier}"
|
|
31
|
+
output(attest_false_url:)
|
|
32
|
+
|
|
24
33
|
wait(
|
|
25
|
-
identifier
|
|
34
|
+
identifier:,
|
|
26
35
|
message: %(
|
|
27
36
|
I attest that the client application successfully processed the event notification sent by Inferno.
|
|
28
37
|
|
|
29
|
-
[Click here](#{
|
|
38
|
+
[Click here](#{attest_true_url}) if the above statement is **true**.
|
|
30
39
|
|
|
31
|
-
[Click here](#{
|
|
40
|
+
[Click here](#{attest_false_url}) if the above statement is **false**.
|
|
32
41
|
)
|
|
33
42
|
)
|
|
34
43
|
end
|
|
@@ -6,6 +6,7 @@ module SubscriptionsTestKit
|
|
|
6
6
|
module SubscriptionsR5BackportR4Client
|
|
7
7
|
class SubscriptionVerificationTest < Inferno::Test
|
|
8
8
|
include SubscriptionConformanceVerification
|
|
9
|
+
|
|
9
10
|
id :subscriptions_r4_client_subscription_verification
|
|
10
11
|
title 'Client Subscription Conformance Verification'
|
|
11
12
|
description %(
|
|
@@ -4,6 +4,7 @@ module SubscriptionsTestKit
|
|
|
4
4
|
module SubscriptionsR5BackportR4Client
|
|
5
5
|
class InteractionTest < Inferno::Test
|
|
6
6
|
include URLs
|
|
7
|
+
|
|
7
8
|
id :subscriptions_r4_client_interaction
|
|
8
9
|
description %(
|
|
9
10
|
During this test, the client under test will interact with Inferno following the Subscription
|
|
@@ -71,6 +72,8 @@ module SubscriptionsTestKit
|
|
|
71
72
|
notification to send to the client endpoint, and responses to $status operation requests. The provided
|
|
72
73
|
Bundle must conform to the R4 Topic-Based Subscription Notification Bundle profile.
|
|
73
74
|
)
|
|
75
|
+
output :confirmation_url
|
|
76
|
+
output :fail_url
|
|
74
77
|
|
|
75
78
|
verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@23'
|
|
76
79
|
|
|
@@ -80,6 +83,11 @@ module SubscriptionsTestKit
|
|
|
80
83
|
m[:type] == 'error'
|
|
81
84
|
end, 'Notification Bundle input is invalid for use by Inferno, see error message(s)')
|
|
82
85
|
|
|
86
|
+
confirmation_url = "#{resume_pass_url_client}?test_run_identifier=#{access_token}"
|
|
87
|
+
output(confirmation_url:)
|
|
88
|
+
fail_url = "#{resume_fail_url_client}?test_run_identifier=#{access_token}"
|
|
89
|
+
output(fail_url:)
|
|
90
|
+
|
|
83
91
|
wait(
|
|
84
92
|
identifier: access_token,
|
|
85
93
|
timeout: 600,
|
|
@@ -101,10 +109,10 @@ module SubscriptionsTestKit
|
|
|
101
109
|
At any point while this test is waiting, Inferno will respond to Subscription GET and $status requests.
|
|
102
110
|
|
|
103
111
|
Once the client has received an event notification and has made any additional requests,
|
|
104
|
-
[click here to complete the test](#{
|
|
112
|
+
[click here to complete the test](#{confirmation_url})
|
|
105
113
|
|
|
106
114
|
If at any point something has gone wrong and the client is unable to continue,
|
|
107
|
-
[click here to fail the test](#{
|
|
115
|
+
[click here to fail the test](#{fail_url})
|
|
108
116
|
|
|
109
117
|
NOTE: The test must be completed or failed using the links above within 10 minutes. After that,
|
|
110
118
|
attempts to send requests or to complete or fail the tests using the links above
|
|
@@ -52,6 +52,9 @@ module SubscriptionsTestKit
|
|
|
52
52
|
|
|
53
53
|
capability_statement = File.read(File.join(__dir__, 'subscriptions_r5_backport_r4_client', 'fixtures',
|
|
54
54
|
'capability_statement.json'))
|
|
55
|
+
if Inferno::Application['base_url'].start_with? 'https://inferno-qa.healthit.gov'
|
|
56
|
+
capability_statement.gsub!('https://inferno.healthit.gov', 'https://inferno-qa.healthit.gov')
|
|
57
|
+
end
|
|
55
58
|
route(:get, '/fhir/metadata', proc {
|
|
56
59
|
[200, { 'Content-Type' => 'application/fhir+json' }, [capability_statement]]
|
|
57
60
|
})
|
|
@@ -30,11 +30,16 @@ module SubscriptionsTestKit
|
|
|
30
30
|
provided as a `Bearer` token in the `Authorization` header of HTTP requests
|
|
31
31
|
sent to Inferno.
|
|
32
32
|
)
|
|
33
|
+
output :confirmation_url
|
|
33
34
|
|
|
34
35
|
run do
|
|
35
36
|
subscription = JSON.parse(updated_subscription)
|
|
36
37
|
returned_subscription = send_subscription(subscription)
|
|
37
38
|
subscription_payload_type = subscription_payload_type(subscription)
|
|
39
|
+
|
|
40
|
+
confirmation_url = "#{resume_pass_url_server}?token=notification%20#{access_token}"
|
|
41
|
+
output(confirmation_url:)
|
|
42
|
+
|
|
38
43
|
wait(
|
|
39
44
|
identifier: "notification #{access_token}",
|
|
40
45
|
message: %(
|
|
@@ -45,7 +50,7 @@ module SubscriptionsTestKit
|
|
|
45
50
|
|
|
46
51
|
`#{subscription_channel_url}`
|
|
47
52
|
|
|
48
|
-
[Click here](#{
|
|
53
|
+
[Click here](#{confirmation_url}) when you have finished
|
|
49
54
|
submitting requests.
|
|
50
55
|
|
|
51
56
|
)
|
|
@@ -6,7 +6,7 @@ module SubscriptionsTestKit
|
|
|
6
6
|
include SubscriptionConformanceVerification
|
|
7
7
|
|
|
8
8
|
id :subscriptions_r4_server_subscription_conformance
|
|
9
|
-
title '
|
|
9
|
+
title 'Verify Subscription to Send to Server'
|
|
10
10
|
description %(
|
|
11
11
|
This test accepts a Subscription resource as an input and verifies that it is conformant to the
|
|
12
12
|
[R4/B Topic-Based Subscription profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription.html)
|
|
@@ -28,6 +28,7 @@ module SubscriptionsTestKit
|
|
|
28
28
|
access token to direct the server to send that header to identify the notifications are for this session.
|
|
29
29
|
Inferno will add the entry if it is not present.
|
|
30
30
|
)
|
|
31
|
+
simulation_verification
|
|
31
32
|
|
|
32
33
|
verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@72',
|
|
33
34
|
'hl7.fhir.uv.subscriptions_1.1.0@73'
|
metadata
CHANGED
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: subscriptions_test_kit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.12.
|
|
4
|
+
version: 0.12.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Karl Naden, Emily Semple, Tom Strassner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-04-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: faraday
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
-
- - ">="
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
-
version: 1.0.2
|
|
19
|
+
version: 1.10.5
|
|
23
20
|
type: :runtime
|
|
24
21
|
prerelease: false
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
23
|
requirements:
|
|
27
24
|
- - "~>"
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
|
-
version:
|
|
30
|
-
|
|
26
|
+
version: 1.10.5
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: inferno_core
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.2.1
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
31
39
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 1.
|
|
40
|
+
version: 1.2.1
|
|
33
41
|
description: Inferno test kit for FHIR R5-style Subscriptions
|
|
34
42
|
email:
|
|
35
43
|
executables: []
|