From b371215d4fdbf93a2852b4723b97107b0592b9e4 Mon Sep 17 00:00:00 2001 From: Karl Naden Date: Sun, 22 Feb 2026 00:21:12 -0500 Subject: [PATCH] output urls for interacting with waits for scripting --- .../processing_attestation_test.rb | 13 +++++++++++-- .../workflow/interaction_test.rb | 11 +++++++++-- .../interaction/notification_delivery_test.rb | 7 ++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb index eb392ce..98ae624 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/conformance_verification/processing_attestation_test.rb @@ -17,12 +17,21 @@ class ProcessingAttestationTest < Inferno::Test Subscription. ) + output :attest_true_url + output :attest_false_url + run do load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG) skip_if(requests.none?, 'Inferno did not send an event notification') - token = SecureRandom.hex(32) + + identifier = test_session_id + attest_true_url = "#{resume_pass_url_client}?test_run_identifier=#{identifier}" + output(attest_true_url:) + attest_false_url = "#{resume_fail_url_client}?test_run_identifier=#{identifier}" + output(attest_false_url:) + wait( - identifier: token, + identifier:, message: %( I attest that the client application successfully processed the event notification sent by Inferno. diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb index 3edd24b..d6ef1f7 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_client/workflow/interaction_test.rb @@ -71,6 +71,8 @@ class InteractionTest < Inferno::Test notification to send to the client endpoint, and responses to $status operation requests. The provided Bundle must conform to the R4 Topic-Based Subscription Notification Bundle profile. ) + output :confirmation_url + output :fail_url verifies_requirements 'hl7.fhir.uv.subscriptions_1.1.0@23' @@ -80,6 +82,11 @@ class InteractionTest < Inferno::Test m[:type] == 'error' end, 'Notification Bundle input is invalid for use by Inferno, see error message(s)') + confirmation_url = "#{resume_pass_url_client}?test_run_identifier=#{access_token}" + output(confirmation_url:) + fail_url = "#{resume_fail_url_client}?test_run_identifier=#{access_token}" + output(fail_url:) + wait( identifier: access_token, timeout: 600, @@ -101,10 +108,10 @@ class InteractionTest < Inferno::Test At any point while this test is waiting, Inferno will respond to Subscription GET and $status requests. Once the client has received an event notification and has made any additional requests, - [click here to complete the test](#{resume_pass_url_client}?test_run_identifier=#{access_token}) + [click here to complete the test](#{confirmation_url}) If at any point something has gone wrong and the client is unable to continue, - [click here to fail the test](#{resume_fail_url_client}?test_run_identifier=#{access_token}) + [click here to fail the test](#{fail_url}) NOTE: The test must be completed or failed using the links above within 10 minutes. After that, attempts to send requests or to complete or fail the tests using the links above diff --git a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb index c9fb98b..c1e17a0 100644 --- a/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb +++ b/lib/subscriptions_test_kit/suites/subscriptions_r5_backport_r4_server/common/interaction/notification_delivery_test.rb @@ -30,11 +30,16 @@ class NotificationDeliveryTest < Inferno::Test provided as a `Bearer` token in the `Authorization` header of HTTP requests sent to Inferno. ) + output :confirmation_url run do subscription = JSON.parse(updated_subscription) returned_subscription = send_subscription(subscription) subscription_payload_type = subscription_payload_type(subscription) + + confirmation_url = "#{resume_pass_url_server}?token=notification%20#{access_token}" + output(confirmation_url:) + wait( identifier: "notification #{access_token}", message: %( @@ -45,7 +50,7 @@ class NotificationDeliveryTest < Inferno::Test `#{subscription_channel_url}` - [Click here](#{resume_pass_url_server}?token=notification%20#{access_token}) when you have finished + [Click here](#{confirmation_url}) when you have finished submitting requests. )