subscriptions_test_kit 0.10.0 → 0.11.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 (21) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/subscription_server_preset_empty.json.erb +7 -3
  3. data/config/presets/subscription_server_preset_full_resource.json.erb +7 -3
  4. data/config/presets/subscription_server_preset_id_only.json.erb +7 -3
  5. data/lib/subscriptions_test_kit/common/notification_conformance_verification.rb +36 -0
  6. data/lib/subscriptions_test_kit/metadata.rb +2 -2
  7. data/lib/subscriptions_test_kit/requirements/generated/subscriptions-test-kit_requirements_coverage.csv +2 -2
  8. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb +2 -2
  9. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb +2 -2
  10. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb +2 -2
  11. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction_verification/notification_conformance_test.rb +6 -0
  12. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification/empty_content_group.rb +1 -1
  13. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification/full_resource_content_group.rb +1 -1
  14. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification/id_only_content_group.rb +1 -1
  15. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/event_notification_group.rb +1 -1
  16. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/subscription_rejection_group.rb +1 -1
  17. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/workflow_group.rb +1 -1
  18. data/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server_suite.rb +7 -4
  19. data/lib/subscriptions_test_kit/urls.rb +26 -10
  20. data/lib/subscriptions_test_kit/version.rb +2 -2
  21. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33ac6bc935b44cb7bc9e03e4d8d5c3fecb0626f72afe303a2fbda58c59c89bf9
4
- data.tar.gz: 99a87dfe4745fdb7f658ed01e133f63b392d2341db636c1f65a1289c1e9fa2f6
3
+ metadata.gz: 69bd5f8b159287e00963a0a7656a70abeef3957245ffcb6d57ad7d241892f17b
4
+ data.tar.gz: 1b001157ec58dc65ef08fef2c100c05c22a4ab25c48ae839be8ffe90191082de
5
5
  SHA512:
6
- metadata.gz: 6d38fca0fc6b0714be01b3f33273dbd6df9dd5001dc294d0a602bd93ebafd02fa3dd0166f1e7f35e624f3f3627e7a720f00eb33bc84631b0115eb1bfde89b120
7
- data.tar.gz: 58a359a599bb089ce6bdae13f6a343d489138f482b65f0348fcb5bbdb71be7eba5ec1d913914351a979bbfd001c9d20dca86ddfd2dfbb16f2a59c6c27501ea4b
6
+ metadata.gz: 3c45a0edc8437715a34016b2e0529267d6b96784104204ff5b4cdda0328022f141296102f1350f735f9e504212bf7b98de22340c4d8ebef5617de8e23b2934d3
7
+ data.tar.gz: 361b054f1829de4c30148a412a71c5388bcafded2bd4157e351f96ce416d06d86a99600a0dc937ab3ed0dd7b65a0af3f3de02f703a33b2902bf7a1864b59fbe0
@@ -8,8 +8,12 @@
8
8
  "value": "<%= Inferno::Application['base_url'] %>/custom/subscriptions_r5_backport_r4_client/fhir"
9
9
  },
10
10
  {
11
- "name": "credentials",
12
- "value": "{\"access_token\":\"SAMPLE_TOKEN\"}"
11
+ "name": "smart_auth_info",
12
+ "type": "auth_info",
13
+ "value": {
14
+ "auth_type": "public",
15
+ "access_token": "SAMPLE_TOKEN"
16
+ }
13
17
  },
14
18
  {
15
19
  "name": "subscription_resource",
@@ -20,4 +24,4 @@
20
24
  "value": "SAMPLE_TOKEN"
21
25
  }
22
26
  ]
23
- }
27
+ }
@@ -8,8 +8,12 @@
8
8
  "value": "<%= Inferno::Application['base_url'] %>/custom/subscriptions_r5_backport_r4_client/fhir"
9
9
  },
10
10
  {
11
- "name": "credentials",
12
- "value": "{\"access_token\":\"SAMPLE_TOKEN\"}"
11
+ "name": "smart_auth_info",
12
+ "type": "auth_info",
13
+ "value": {
14
+ "auth_type": "public",
15
+ "access_token": "SAMPLE_TOKEN"
16
+ }
13
17
  },
14
18
  {
15
19
  "name": "subscription_resource",
@@ -20,4 +24,4 @@
20
24
  "value": "SAMPLE_TOKEN"
21
25
  }
22
26
  ]
23
- }
27
+ }
@@ -8,8 +8,12 @@
8
8
  "value": "<%= Inferno::Application['base_url'] %>/custom/subscriptions_r5_backport_r4_client/fhir"
9
9
  },
10
10
  {
11
- "name": "credentials",
12
- "value": "{\"access_token\":\"SAMPLE_TOKEN\"}"
11
+ "name": "smart_auth_info",
12
+ "type": "auth_info",
13
+ "value": {
14
+ "auth_type": "public",
15
+ "access_token": "SAMPLE_TOKEN"
16
+ }
13
17
  },
14
18
  {
15
19
  "name": "subscription_resource",
@@ -20,4 +24,4 @@
20
24
  "value": "SAMPLE_TOKEN"
21
25
  }
22
26
  ]
23
- }
27
+ }
@@ -305,5 +305,41 @@ module SubscriptionsTestKit
305
305
 
306
306
  verify_id_only_notification_bundle_entries(bundle_entries)
307
307
  end
308
+
309
+ def notification_header_verification(request_headers, subscription)
310
+ mime_type = subscription&.dig('channel', 'payload')
311
+ # Verification for hl7.fhir.uv.subscriptions_1.1.0@26
312
+ if mime_type.present?
313
+ content_type_header = request_headers.find { |header| header.name.downcase == 'content-type' }
314
+ handle_content_type_header_errors(mime_type, content_type_header)
315
+ end
316
+ # Verification for hl7.fhir.uv.subscriptions_1.1.0@27
317
+ subscription.dig('channel', 'header').each do |requested_header|
318
+ handle_sent_header_errors(request_headers, requested_header)
319
+ end
320
+ end
321
+
322
+ def handle_content_type_header_errors(mime_type, content_type_header)
323
+ if content_type_header.blank?
324
+ add_message('error', "Content type header not sent, subscription requested #{mime_type}\n")
325
+ elsif !content_type_header.value.start_with?(mime_type)
326
+ add_message('error',
327
+ 'Content type of request does not match the Subscription MIME type. ' \
328
+ "Expected #{mime_type}, received #{content_type_header.value}")
329
+ end
330
+ end
331
+
332
+ def handle_sent_header_errors(request_headers, requested_header)
333
+ requested_name = requested_header.partition(': ').first.downcase
334
+ requested_value = requested_header.partition(': ').last
335
+ sent_header = request_headers.find { |header| header.name.downcase == requested_name }
336
+ if sent_header.blank?
337
+ add_message('error', "Requested header not sent: #{requested_header}\n")
338
+ elsif sent_header.value != requested_value
339
+ add_message('error',
340
+ "Requested value for header #{requested_name} does not match the request sent. " \
341
+ "Expected #{requested_value}, received #{sent_header.value}")
342
+ end
343
+ end
308
344
  end
309
345
  end
@@ -3,9 +3,9 @@ require_relative 'version'
3
3
  module SubscriptionsTestKit
4
4
  class Metadata < Inferno::TestKit
5
5
  id :subscriptions_test_kit
6
- title 'Subscription Test Kit'
6
+ title 'Subscriptions Test Kit'
7
7
  description <<~DESCRIPTION
8
- The Subscriptions Test Suite verifies the conformance of systems to the FHIR Subscriptions
8
+ The Subscriptions Test Kit verifies the conformance of systems to the FHIR Subscriptions
9
9
  framework as specified in the [HL7® FHIR® R5 version](https://www.hl7.org/fhir/R5/subscriptions.html)
10
10
  and above. For systems using the R4 and R4B releases of FHIR, it verifies Subscription
11
11
  functionality against the [Subscriptions R5 Backport
@@ -25,8 +25,8 @@ hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backpor
25
25
  hl7.fhir.uv.subscriptions_1.1.0,23,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To receive notifications via HTTP/S POST, a client should request a subscription with the channel type of rest-hook and set the endpoint to the appropriate client URL.",SHALL,Client,,,1.1.01,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-Group01-subscriptions_r4_client_interaction,NA,NA
26
26
  hl7.fhir.uv.subscriptions_1.1.0,24,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,This URL [for the subscription notification endpoint] must be accessible by the hosting server.,SHALL,Client,,,1.2.02,subscriptions_r5_backport_r4_client-subscriptions_r4_client_workflow-subscriptions_r4_client_interaction_verification-subscriptions_r4_client_event_notification_verification,NA,NA
27
27
  hl7.fhir.uv.subscriptions_1.1.0,25,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To convey an event notification, the server POSTs a Bundle to the client’s nominated endpoint URL",SHALL,Server,,,NA,NA,"1.1.03, 3.1.1.03, 3.2.1.03, 3.3.1.03, 4.01","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance"
28
- hl7.fhir.uv.subscriptions_1.1.0,26,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The content-type of the POST SHALL match the MIME type on the Subscription (Subscription.channel.payload).,SHALL,Server,,,NA,NA,,
29
- hl7.fhir.uv.subscriptions_1.1.0,27,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Each Subscription.channel.header value SHALL be conveyed as an HTTP request header.,SHALL,Server,,,NA,NA,,
28
+ hl7.fhir.uv.subscriptions_1.1.0,26,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The content-type of the POST SHALL match the MIME type on the Subscription (Subscription.channel.payload).,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance"
29
+ hl7.fhir.uv.subscriptions_1.1.0,27,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Each Subscription.channel.header value SHALL be conveyed as an HTTP request header.,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.2.2.02, 3.3.2.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance"
30
30
  hl7.fhir.uv.subscriptions_1.1.0,28,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The bundle SHALL comply with the Backported R5 Notification Bundle Profile.,SHALL,Server,,,NA,NA,"1.2.02, 3.1.2.02, 3.1.2.03, 3.2.2.02, 3.2.2.03, 3.3.2.02, 3.3.2.03, 4.01, 4.02","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction_verification-subscriptions_r4_server_empty_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction_verification-subscriptions_r4_server_id_only_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_notification_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction_verification-subscriptions_r4_server_full_resource_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_handshake_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_handshake_heartbeat-subscriptions_r4_server_heartbeat_conformance"
31
31
  hl7.fhir.uv.subscriptions_1.1.0,29,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"When a Subscription is created for a REST Hook channel type, the server SHALL set initial status to requested, pending verification of the nominated endpoint URL.",SHALL,Server,,,NA,NA,"1.1.03, 3.1.1.03, 3.2.1.03, 3.3.1.03","subscriptions_r5_backport_r4_server-subscriptions_r4_server_workflow-subscriptions_r4_server_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_empty_content-subscriptions_r4_server_empty_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_id_only_content-subscriptions_r4_server_id_only_content_interaction-subscriptions_r4_server_creation_response_conformance, subscriptions_r5_backport_r4_server-subscriptions_r4_server_event_notification-subscriptions_r4_server_full_resource_content-subscriptions_r4_server_full_resource_content_interaction-subscriptions_r4_server_creation_response_conformance"
32
32
  hl7.fhir.uv.subscriptions_1.1.0,30,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"After a successful handshake notification has been sent and accepted [for a REST Hook channel type], the server SHALL update the status to active.",SHALL,Server,,,NA,NA,5.01,subscriptions_r5_backport_r4_server-subscriptions_r4_server_status_operation-subscriptions_r4_server_status_invocation
@@ -27,9 +27,9 @@ module SubscriptionsTestKit
27
27
  message: %(
28
28
  I attest that the client application successfully processed the event notification sent by Inferno.
29
29
 
30
- [Click here](#{resume_pass_url}?test_run_identifier=#{token}) if the above statement is **true**.
30
+ [Click here](#{resume_pass_url_client}?test_run_identifier=#{token}) if the above statement is **true**.
31
31
 
32
- [Click here](#{resume_fail_url}?test_run_identifier=#{token}) if the above statement is **false**.
32
+ [Click here](#{resume_fail_url_client}?test_run_identifier=#{token}) if the above statement is **false**.
33
33
  )
34
34
  )
35
35
  end
@@ -101,10 +101,10 @@ module SubscriptionsTestKit
101
101
  At any point while this test is waiting, Inferno will respond to Subscription GET and $status requests.
102
102
 
103
103
  Once the client has received an event notification and has made any additional requests,
104
- [click here to complete the test](#{resume_pass_url}?test_run_identifier=#{access_token})
104
+ [click here to complete the test](#{resume_pass_url_client}?test_run_identifier=#{access_token})
105
105
 
106
106
  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}?test_run_identifier=#{access_token})
107
+ [click here to fail the test](#{resume_fail_url_client}?test_run_identifier=#{access_token})
108
108
 
109
109
  NOTE: The test must be completed or failed using the links above within 10 minutes. After that,
110
110
  attempts to send requests or to complete or fail the tests using the links above
@@ -45,8 +45,8 @@ module SubscriptionsTestKit
45
45
 
46
46
  `#{subscription_channel_url}`
47
47
 
48
- [Click here](#{resume_pass_url}?token=notification%20#{access_token}) when you have finished submitting
49
- requests.
48
+ [Click here](#{resume_pass_url_server}?token=notification%20#{access_token}) when you have finished
49
+ submitting requests.
50
50
 
51
51
  )
52
52
  )
@@ -23,6 +23,8 @@ module SubscriptionsTestKit
23
23
 
24
24
  verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@14',
25
25
  'hl7.fhir.uv.subscriptions_1.1.0@15',
26
+ 'hl7.fhir.uv.subscriptions_1.1.0@26',
27
+ 'hl7.fhir.uv.subscriptions_1.1.0@27',
26
28
  'hl7.fhir.uv.subscriptions_1.1.0@28',
27
29
  'hl7.fhir.uv.subscriptions_1.1.0@69',
28
30
  'hl7.fhir.uv.subscriptions_1.1.0@70',
@@ -80,6 +82,10 @@ module SubscriptionsTestKit
80
82
  subscription_id: subscription['id'],
81
83
  status: 'active'
82
84
  )
85
+ notification_header_verification(
86
+ request.request_headers,
87
+ subscription
88
+ )
83
89
  end
84
90
 
85
91
  no_error_verification("Received event-notifications for Subscription #{subscription['id']} are not conformant.")
@@ -16,7 +16,7 @@ module SubscriptionsTestKit
16
16
  run_as_group
17
17
  optional
18
18
 
19
- input_order :url, :credentials, :access_token, :empty_subscription_resource
19
+ input_order :url, :smart_auth_info, :access_token, :empty_subscription_resource
20
20
 
21
21
  group from: :subscriptions_r4_server_interaction do
22
22
  id :subscriptions_r4_server_empty_content_interaction
@@ -16,7 +16,7 @@ module SubscriptionsTestKit
16
16
  run_as_group
17
17
  optional
18
18
 
19
- input_order :url, :credentials, :access_token, :full_resource_subscription_resource
19
+ input_order :url, :smart_auth_info, :access_token, :full_resource_subscription_resource
20
20
 
21
21
  group from: :subscriptions_r4_server_interaction do
22
22
  id :subscriptions_r4_server_full_resource_content_interaction
@@ -16,7 +16,7 @@ module SubscriptionsTestKit
16
16
  run_as_group
17
17
  optional
18
18
 
19
- input_order :url, :credentials, :access_token, :id_only_subscription_resource
19
+ input_order :url, :smart_auth_info, :access_token, :id_only_subscription_resource
20
20
 
21
21
  group from: :subscriptions_r4_server_interaction do
22
22
  id :subscriptions_r4_server_id_only_content_interaction
@@ -15,7 +15,7 @@ module SubscriptionsTestKit
15
15
  `empty`, `id-only`, and `full-resource`.
16
16
  )
17
17
 
18
- input_order :url, :credentials, :access_token, :empty_subscription_resource,
18
+ input_order :url, :smart_auth_info, :access_token, :empty_subscription_resource,
19
19
  :id_only_subscription_resource, :full_resource_subscription_resource
20
20
 
21
21
  group from: :subscriptions_r4_server_empty_content
@@ -16,7 +16,7 @@ module SubscriptionsTestKit
16
16
  Subscription creation requests.
17
17
  )
18
18
 
19
- input_order :url, :credentials, :subscription_resource, :unsupported_subscription_topic,
19
+ input_order :url, :smart_auth_info, :subscription_resource, :unsupported_subscription_topic,
20
20
  :unsupported_subscription_filter, :unsupported_subscription_channel_type,
21
21
  :unsupported_subscription_channel_endpoint, :unsupported_subscription_payload_type,
22
22
  :unsupported_subscription_channel_payload_combo
@@ -18,7 +18,7 @@ module SubscriptionsTestKit
18
18
 
19
19
  run_as_group
20
20
 
21
- input_order :url, :credentials, :access_token, :subscription_resource
21
+ input_order :url, :smart_auth_info, :access_token, :subscription_resource
22
22
 
23
23
  group from: :subscriptions_r4_server_interaction
24
24
  group from: :subscriptions_r4_server_interaction_verification
@@ -44,16 +44,19 @@ module SubscriptionsTestKit
44
44
  these tests.
45
45
  )
46
46
 
47
- input :credentials,
47
+ input :smart_auth_info,
48
48
  title: 'OAuth Credentials',
49
49
  description: 'Credentials for Inferno to include when making requests against the server under test.',
50
- type: :oauth_credentials,
51
- optional: true
50
+ type: :auth_info,
51
+ optional: true,
52
+ options: {
53
+ mode: 'access'
54
+ }
52
55
 
53
56
  # All FHIR requests in this suite will use this FHIR client
54
57
  fhir_client do
55
58
  url :url
56
- oauth_credentials :credentials
59
+ auth_info :smart_auth_info
57
60
  end
58
61
 
59
62
  # All FHIR validation requests will use this FHIR validator
@@ -10,28 +10,44 @@ module SubscriptionsTestKit
10
10
  RESUME_FAIL_PATH = '/resume_fail'
11
11
 
12
12
  module URLs
13
- def base_url
14
- @base_url ||= "#{Inferno::Application['base_url']}/custom/#{suite_id}"
13
+ def server_suite_base_url
14
+ @server_suite_base_url ||= "#{Inferno::Application['base_url']}/custom/#{server_suite_id}"
15
+ end
16
+
17
+ def client_suite_base_url
18
+ @client_suite_base_url ||= "#{Inferno::Application['base_url']}/custom/#{client_suite_id}"
15
19
  end
16
20
 
17
21
  def subscription_channel_url
18
- @subscription_channel_url ||= base_url + SUBSCRIPTION_CHANNEL_PATH
22
+ @subscription_channel_url ||= server_suite_base_url + SUBSCRIPTION_CHANNEL_PATH
23
+ end
24
+
25
+ def resume_pass_url_server
26
+ @resume_pass_url_server ||= server_suite_base_url + RESUME_PASS_PATH
27
+ end
28
+
29
+ def resume_fail_url_server
30
+ @resume_fail_url_server ||= server_suite_base_url + RESUME_FAIL_PATH
19
31
  end
20
32
 
21
33
  def fhir_subscription_url
22
- @fhir_subscription_url ||= base_url + FHIR_SUBSCRIPTION_PATH
34
+ @fhir_subscription_url ||= client_suite_base_url + FHIR_SUBSCRIPTION_PATH
35
+ end
36
+
37
+ def resume_pass_url_client
38
+ @resume_pass_url_client ||= client_suite_base_url + RESUME_PASS_PATH
23
39
  end
24
40
 
25
- def resume_pass_url
26
- @resume_pass_url ||= base_url + RESUME_PASS_PATH
41
+ def resume_fail_url_client
42
+ @resume_fail_url_client ||= client_suite_base_url + RESUME_FAIL_PATH
27
43
  end
28
44
 
29
- def resume_fail_url
30
- @resume_fail_url ||= base_url + RESUME_FAIL_PATH
45
+ def server_suite_id
46
+ SubscriptionsR5BackportR4Server::SubscriptionsR5BackportR4ServerSuite.id
31
47
  end
32
48
 
33
- def suite_id
34
- self.class.suite.id
49
+ def client_suite_id
50
+ SubscriptionsR5BackportR4Client::SubscriptionsR5BackportR4ClientSuite.id
35
51
  end
36
52
  end
37
53
  end
@@ -1,4 +1,4 @@
1
1
  module SubscriptionsTestKit
2
- VERSION = '0.10.0'.freeze
3
- LAST_UPDATED = '2025-02-25'.freeze
2
+ VERSION = '0.11.0'.freeze
3
+ LAST_UPDATED = '2025-03-19'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subscriptions_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
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-02-26 00:00:00.000000000 Z
11
+ date: 2025-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core