subscriptions_test_kit 0.11.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc2d99617dc0f1782bb64fa2ff122b2a1b0c4ae605009d50df0427f9c90dbb8c
4
- data.tar.gz: 2397cdf9b262c916b246df37cff9e1a7a3bee01b19325fb3ad3a3c43757779ac
3
+ metadata.gz: 10ffb662d80a36170cabd608e69c7a776d7aab12ed7c32e347e7b32f68d8b8dd
4
+ data.tar.gz: 30b825cba5b772ed7265385ee247f3a22648aa07ea1d31dfb86917f1cee1a610
5
5
  SHA512:
6
- metadata.gz: 3b9fe253c2940ea5c9120a8c29ff5f282f707c061a29f875af652b2502707dc1f0cba9e4378951a7c0894a768efe6b38088a738966668d0221b186d6c6bc3efd
7
- data.tar.gz: 58e1c0787c707e313068d67d9a0e7564ff00e3af00617191c3eb22f636dcf8bffd97f3f73e1cab7d70881db76a429c7bf4ec0e49a0ab436e9971399863b691c0
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 '[USER INPUT VERIFICATION] Notification Bundle Input Conformance Verification for Payload Content'
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 '[USER INPUT VERIFICATION] Notification Bundle Input Conformance Verification'
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
- token = SecureRandom.hex(32)
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: token,
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](#{resume_pass_url_client}?test_run_identifier=#{token}) if the above statement is **true**.
38
+ [Click here](#{attest_true_url}) if the above statement is **true**.
30
39
 
31
- [Click here](#{resume_fail_url_client}?test_run_identifier=#{token}) if the above statement is **false**.
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](#{resume_pass_url_client}?test_run_identifier=#{access_token})
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](#{resume_fail_url_client}?test_run_identifier=#{access_token})
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](#{resume_pass_url_server}?token=notification%20#{access_token}) when you have finished
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 '[USER INPUT VERIFICATION] Verify Subscription to Send to Server'
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'
@@ -1,4 +1,4 @@
1
1
  module SubscriptionsTestKit
2
- VERSION = '0.11.3'.freeze
3
- LAST_UPDATED = '2025-07-01'.freeze
2
+ VERSION = '0.12.1'.freeze
3
+ LAST_UPDATED = '2026-04-27'.freeze
4
4
  end
metadata CHANGED
@@ -1,32 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subscriptions_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.3
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: 2025-07-01 00:00:00.000000000 Z
11
+ date: 2026-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.10.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.10.5
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: inferno_core
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 0.6.16
33
+ version: 1.2.1
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 0.6.16
40
+ version: 1.2.1
27
41
  description: Inferno test kit for FHIR R5-style Subscriptions
28
42
  email:
29
- - inferno@groups.mitre.org
30
43
  executables: []
31
44
  extensions: []
32
45
  extra_rdoc_files: []