davinci_pas_test_kit 0.15.1 → 0.16.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.
- checksums.yaml +4 -4
- data/config/presets/g33_br_provider.json +13 -0
- data/config/presets/pas_client_example.json +2 -2
- data/config/presets/pas_client_v201_run_against_pas_server.json +2 -2
- data/config/presets/pas_client_v221_run_against_pas_server.json +3 -3
- data/config/presets/pas_ri.json +6 -6
- data/config/presets/pas_server_v201_run_against_pas_client.json.erb +6 -6
- data/config/presets/pas_server_v221_run_against_pas_client.json.erb +10 -10
- data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +28 -17
- data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +26 -16
- data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +45 -74
- data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +29 -19
- data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +75 -6
- data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +26 -9
- data/lib/davinci_pas_test_kit/client/abstract_subscription_update_delete_test.rb +91 -0
- data/lib/davinci_pas_test_kit/client/client_bundle_validation_helper.rb +245 -0
- data/lib/davinci_pas_test_kit/client/client_input_descriptions.rb +96 -1
- data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +128 -72
- data/lib/davinci_pas_test_kit/client/endpoints/endpoint_session_identification.rb +24 -0
- data/lib/davinci_pas_test_kit/client/endpoints/expired_token.rb +40 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_create_endpoint.rb +7 -12
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_delete_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_read_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_status_endpoint.rb +15 -20
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_update_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/token_endpoint.rb +16 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +10 -32
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +8 -6
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +13 -9
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +10 -32
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/jobs/send_pas_subscription_notification.rb +64 -3
- data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +6 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +8 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +9 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +5 -4
- data/lib/davinci_pas_test_kit/client/request_count_gating.rb +14 -0
- data/lib/davinci_pas_test_kit/client/response_generator.rb +50 -9
- data/lib/davinci_pas_test_kit/client/session_identification.rb +26 -7
- data/lib/davinci_pas_test_kit/client/subscription_notification_trigger.rb +80 -0
- data/lib/davinci_pas_test_kit/client/subscription_setup_requirement.rb +59 -0
- data/lib/davinci_pas_test_kit/client/user_input_response.rb +50 -10
- data/lib/davinci_pas_test_kit/client/v2.0.1/client_suite.rb +30 -15
- data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_approval_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_denial_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +38 -52
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_pended_group.rb +28 -22
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_subscription_setup_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_workflows_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_pended_submit_test.rb +49 -40
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_provider_review_attestation_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_security_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_subscription_error_recovery_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +64 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +20 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +11 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +21 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +19 -8
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +90 -40
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +12 -11
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_attestations_group.rb +32 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +24 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +12 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +13 -14
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +55 -59
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +8 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +53 -41
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +9 -7
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +9 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_update_delete_group.rb +57 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +22 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +2 -1
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_put_update_pas_conformance_test.rb +49 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_update_delete_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +5 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +82 -56
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +17 -20
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +59 -27
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +0 -3
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_send_notification_test.rb +138 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +32 -85
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +16 -21
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +27 -27
- data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +13 -3
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/beneficiary/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_inquiry/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_update/metadata.yml +17 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claiminquiryresponse/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claimresponse/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/communication_request/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/coverage/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/device_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/encounter/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/insurer/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/medication_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/metadata.yml +143 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/nutrition_order/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner_role/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/requestor/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/service_request/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/subscriber/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/task/metadata.yml +1 -4
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_inquiry/metadata.yml +23 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +31 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +42 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +42 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/device_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/medication_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +265 -1
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/nutrition_order/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/service_request/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +4 -4
- data/lib/davinci_pas_test_kit/cross_suite/pas_bundle_validation.rb +570 -312
- data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +13 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_datatype_constraints.rb +166 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +8 -4
- data/lib/davinci_pas_test_kit/cross_suite/referenced_resource_presence_validation.rb +141 -0
- data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +39 -21
- data/lib/davinci_pas_test_kit/cross_suite/tags.rb +11 -6
- data/lib/davinci_pas_test_kit/cross_suite/validator_configuration.rb +16 -0
- data/lib/davinci_pas_test_kit/cross_suite/validator_suppressions.rb +210 -146
- data/lib/davinci_pas_test_kit/docs/demo/PAS Client Suite Demonstration.postman_collection.json +7 -7
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +1 -0
- data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +47 -16
- data/lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb +17 -0
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +14 -2
- data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +1 -2
- data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +1 -1
- data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +23 -0
- data/lib/davinci_pas_test_kit/generator/server_suite_generator.rb +8 -7
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +22 -3
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +7 -16
- data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +11 -10
- data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +22 -0
- data/lib/davinci_pas_test_kit/generator/templates/server_suite.rb.erb +9 -11
- data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +3 -0
- data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +19 -13
- data/lib/davinci_pas_test_kit/parameters_helper.rb +13 -5
- data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +2 -2
- data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +14 -7
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +21 -21
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +30 -26
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +39 -33
- data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +4 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +4 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +7 -6
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/server_suite.rb +9 -11
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +3 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +3 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +5 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +5 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +12 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +9 -4
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +9 -11
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +2 -2
- data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +4 -6
- data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +17 -10
- data/lib/davinci_pas_test_kit/server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_setup.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/claim_inquiry/server_claim_inquiry_response_tests.rb +89 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +2 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_inquiry_responses_group.rb +17 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_no_custom_extensions_test.rb +241 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_capability_statement_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +15 -10
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_input_test.rb +63 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_test.rb +109 -0
- data/lib/davinci_pas_test_kit/version.rb +2 -2
- metadata +38 -13
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +0 -20
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
require_relative '../cross_suite/response_selection_utils'
|
|
2
|
+
|
|
1
3
|
module DaVinciPASTestKit
|
|
2
4
|
module UserInputResponse
|
|
5
|
+
# Raised when a tester-provided response input is present but cannot be used. The
|
|
6
|
+
# message explains why in terms the tester can act on.
|
|
7
|
+
class InvalidInputError < StandardError; end
|
|
8
|
+
|
|
3
9
|
def self.included(klass)
|
|
4
10
|
klass.extend ClassMethods
|
|
5
11
|
end
|
|
@@ -21,26 +27,42 @@ module DaVinciPASTestKit
|
|
|
21
27
|
|
|
22
28
|
# Returns the tester-provided response candidates for the must support workflow
|
|
23
29
|
# as a list of parsed JSON hashes. The input value may be a single entry or a
|
|
24
|
-
# JSON array of entries, where each entry is either a bare FHIR Bundle or
|
|
25
|
-
# wrapper object holding the response
|
|
26
|
-
# selection "criteria".
|
|
27
|
-
# Returns nil if the input
|
|
28
|
-
|
|
30
|
+
# JSON array of entries, where each entry is either a bare FHIR Bundle or Parameters
|
|
31
|
+
# or a wrapper object holding the response resource under "bundle" alongside optional
|
|
32
|
+
# selection "criteria" - see ResponseSelectionUtils.
|
|
33
|
+
# Returns nil if the input has no value and raises InvalidInputError if the value
|
|
34
|
+
# is present but unusable. The configurable (the waiting test) supplies the input
|
|
35
|
+
# title so that the error names the input as the tester sees it.
|
|
36
|
+
def self.response_candidates(configurable, operation, result)
|
|
29
37
|
input_name = operation == 'submit' ? 'ms_submit_responses' : 'ms_inquire_responses'
|
|
30
|
-
input_value =
|
|
38
|
+
input_value = read_input(result, input_name)
|
|
31
39
|
return unless input_value.present?
|
|
32
40
|
|
|
33
41
|
candidates = JSON.parse(input_value)
|
|
34
42
|
candidates = [candidates] unless candidates.is_a?(Array)
|
|
35
|
-
|
|
43
|
+
invalid_index = candidates.index { |candidate| !valid_candidate?(candidate) }
|
|
44
|
+
if invalid_index.present?
|
|
45
|
+
raise InvalidInputError,
|
|
46
|
+
"Entry #{invalid_index + 1} of the '#{input_title(configurable, input_name)}' input is not " \
|
|
47
|
+
'a FHIR Bundle or Parameters resource, or a wrapper object with one in the "bundle" key.'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
candidates
|
|
36
51
|
rescue JSON::ParserError
|
|
37
|
-
|
|
52
|
+
raise InvalidInputError, "The '#{input_title(configurable, input_name)}' input is not valid JSON."
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Title of an input as shown to the tester in the Inferno UI, falling back to its name
|
|
56
|
+
def self.input_title(configurable, input_key)
|
|
57
|
+
input = configurable.config.inputs[input_key.to_sym]
|
|
58
|
+
(input&.title || input&.name || input_key).to_s
|
|
38
59
|
end
|
|
39
60
|
|
|
40
61
|
def self.valid_candidate?(candidate)
|
|
41
62
|
return false unless candidate.is_a?(Hash)
|
|
42
63
|
|
|
43
|
-
candidate['resourceType']
|
|
64
|
+
ResponseSelectionUtils::RESPONSE_RESOURCE_TYPES.include?(candidate['resourceType']) ||
|
|
65
|
+
candidate[ResponseSelectionUtils::BUNDLE_KEY].is_a?(Hash)
|
|
44
66
|
end
|
|
45
67
|
|
|
46
68
|
def user_inputted_response?(input_key)
|
|
@@ -48,7 +70,25 @@ module DaVinciPASTestKit
|
|
|
48
70
|
end
|
|
49
71
|
|
|
50
72
|
def input_title(input_key)
|
|
51
|
-
|
|
73
|
+
UserInputResponse.input_title(self, input_key)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def response_description_for_wait(user_input, user_input_title, operation)
|
|
77
|
+
if user_input
|
|
78
|
+
<<~DESCRIPTION.strip
|
|
79
|
+
Inferno will respond to `#{operation}` requests with the content provided in the
|
|
80
|
+
'**#{user_input_title}**' input, with `{{...}}` fhirpath expressions replaced with
|
|
81
|
+
their value when evaluated against the request and timestamps and resources references
|
|
82
|
+
updated to be current and consistent. See the ["Response Instantiation" section](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Controlling-Simulated-Responses#response-instantiation)
|
|
83
|
+
of the Da Vinci PAS Test Kit wiki for details on these updates.
|
|
84
|
+
DESCRIPTION
|
|
85
|
+
else
|
|
86
|
+
<<~DESCRIPTION.strip
|
|
87
|
+
Inferno will respond to `#{operation}` requests with a mocked response based on the request.
|
|
88
|
+
See the ["Mocked Responses" section](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
|
|
89
|
+
of the Da Vinci PAS Test Kit wiki for details on the mocked response.
|
|
90
|
+
DESCRIPTION
|
|
91
|
+
end
|
|
52
92
|
end
|
|
53
93
|
|
|
54
94
|
module ClassMethods
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
require 'subscriptions_test_kit'
|
|
2
2
|
require 'udap_security_test_kit'
|
|
3
3
|
require 'smart_app_launch_test_kit'
|
|
4
|
+
require_relative '../../cross_suite/validator_configuration'
|
|
4
5
|
require_relative '../../cross_suite/validator_suppressions'
|
|
5
6
|
require_relative '../../cross_suite/tags'
|
|
6
7
|
require_relative '../endpoints/claim_endpoint'
|
|
7
8
|
require_relative '../endpoints/token_endpoint'
|
|
8
9
|
require_relative '../endpoints/subscription_create_endpoint'
|
|
10
|
+
require_relative '../endpoints/subscription_read_endpoint'
|
|
9
11
|
require_relative '../endpoints/subscription_status_endpoint'
|
|
10
12
|
require_relative '../pas_client_options'
|
|
11
13
|
require_relative 'pas_client_workflows_group'
|
|
@@ -22,33 +24,33 @@ module DaVinciPASTestKit
|
|
|
22
24
|
id :davinci_pas_client_suite_v201
|
|
23
25
|
title 'Da Vinci PAS Client Suite v2.0.1'
|
|
24
26
|
description %(
|
|
25
|
-
The Da Vinci PAS Test Kit Client Suite validates the conformance of
|
|
26
|
-
|
|
27
|
+
The Da Vinci PAS Test Kit Client Suite validates the conformance of PAS clients
|
|
28
|
+
to the STU 2 version of the HL7® FHIR®
|
|
27
29
|
[Da Vinci Prior Authorization Support Implementation Guide](https://hl7.org/fhir/us/davinci-pas/STU2/).
|
|
28
30
|
|
|
29
31
|
These tests are a **DRAFT** intended to allow PAS client implementers to perform
|
|
30
|
-
preliminary checks of their clients against PAS IG requirements and [provide
|
|
32
|
+
preliminary checks of their PAS clients against PAS IG requirements and [provide
|
|
31
33
|
feedback](https://github.com/inferno-framework/davinci-pas-test-kit/issues)
|
|
32
34
|
on the tests. Future versions of these tests may validate other
|
|
33
35
|
requirements and may change the test validation logic.
|
|
34
36
|
|
|
35
37
|
The best place to get started is the [Client Testing
|
|
36
38
|
Walkthrough](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Client-Instructions-v2.0.1),
|
|
37
|
-
which provides a step-by-step guide for running the tests against a client and provides
|
|
39
|
+
which provides a step-by-step guide for running the tests against a PAS client and provides
|
|
38
40
|
an example client implemented in Postman. Visit the [Client Testing
|
|
39
41
|
Details](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Client-Details)
|
|
40
42
|
documentation for information about technical implementation and known limitations of these tests.
|
|
41
43
|
|
|
42
|
-
In this test suite, Inferno simulates a PAS server for the client
|
|
43
|
-
interact with. The client will be expected to initiate requests to the server
|
|
44
|
+
In this test suite, Inferno simulates a PAS server for the PAS client to
|
|
45
|
+
interact with. The PAS client will be expected to initiate requests to the server
|
|
44
46
|
and demonstrate its ability to react to the returned responses. Over the course
|
|
45
47
|
of these interactions, Inferno will seek to observe conformant handling of PAS
|
|
46
48
|
requirements, including:
|
|
47
|
-
- The ability of the client to initiate a prior authorization submission and react to
|
|
49
|
+
- The ability of the PAS client to initiate a prior authorization submission and react to
|
|
48
50
|
- The approval of the request
|
|
49
51
|
- The denial of the request
|
|
50
52
|
- The pending of the request and a subsequent notification that a final decision was made
|
|
51
|
-
- The ability of the client to provide data covering the full scope of required by PAS, including
|
|
53
|
+
- The ability of the PAS client to provide data covering the full scope of required by PAS, including
|
|
52
54
|
- The ability to send prior auth requests and inquiries with all PAS
|
|
53
55
|
profiles and all must support elements on those profiles
|
|
54
56
|
- The ability to handle responses that contain all PAS profiles and all must support elements on those
|
|
@@ -93,16 +95,29 @@ module DaVinciPASTestKit
|
|
|
93
95
|
)
|
|
94
96
|
|
|
95
97
|
fhir_resource_validator do
|
|
96
|
-
igs
|
|
98
|
+
igs(*V201_VALIDATOR_IGS)
|
|
97
99
|
|
|
98
100
|
exclude_message do |message|
|
|
99
|
-
|
|
100
|
-
# We strip `<ResourceType>: <FHIRPath>: ` for the sake of matching
|
|
101
|
-
SUPPRESSED_MESSAGES.match?(message.message.sub(/\A\S+: \S+: /, ''))
|
|
101
|
+
V201_SUPPRESSED_MESSAGES.match?(message.message.sub(VALIDATOR_MESSAGE_LOCATION_PREFIX, ''))
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
validation_context do
|
|
105
|
-
snomedCT
|
|
105
|
+
snomedCT SNOMED_CT_US_EDITION
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Used to verify responses sent by Inferno, which may be tester-provided, to
|
|
110
|
+
# ensure they don't contain extensions not defined in the PAS IG or its dependencies.
|
|
111
|
+
fhir_resource_validator NO_CUSTOM_EXTENSIONS_VALIDATOR do
|
|
112
|
+
igs(*V201_VALIDATOR_IGS)
|
|
113
|
+
|
|
114
|
+
exclude_message do |message|
|
|
115
|
+
V201_SUPPRESSED_MESSAGES.match?(message.message.sub(VALIDATOR_MESSAGE_LOCATION_PREFIX, ''))
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
validation_context do
|
|
119
|
+
snomedCT SNOMED_CT_US_EDITION
|
|
120
|
+
extensions [] # no extensions not in the spec
|
|
106
121
|
end
|
|
107
122
|
end
|
|
108
123
|
|
|
@@ -140,8 +155,8 @@ module DaVinciPASTestKit
|
|
|
140
155
|
suite_endpoint :post, SESSION_INQUIRE_PATH, ClaimEndpoint
|
|
141
156
|
suite_endpoint :post, FHIR_SUBSCRIPTION_PATH, SubscriptionCreateEndpoint
|
|
142
157
|
suite_endpoint :post, SESSION_FHIR_SUBSCRIPTION_PATH, SubscriptionCreateEndpoint
|
|
143
|
-
suite_endpoint :get, FHIR_SUBSCRIPTION_INSTANCE_PATH,
|
|
144
|
-
suite_endpoint :get, SESSION_FHIR_SUBSCRIPTION_INSTANCE_PATH,
|
|
158
|
+
suite_endpoint :get, FHIR_SUBSCRIPTION_INSTANCE_PATH, SubscriptionReadEndpoint
|
|
159
|
+
suite_endpoint :get, SESSION_FHIR_SUBSCRIPTION_INSTANCE_PATH, SubscriptionReadEndpoint
|
|
145
160
|
suite_endpoint :post, FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
146
161
|
suite_endpoint :post, SESSION_FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
147
162
|
suite_endpoint :get, FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
@@ -18,7 +18,7 @@ module DaVinciPASTestKit
|
|
|
18
18
|
* PAS Device Request
|
|
19
19
|
* PAS Nutrition Order
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
PAS clients are allowed to support only the request profiles that fit their use cases. However,
|
|
22
22
|
they must support at least one of them (because `Claim.item.extension:requestedService` is a
|
|
23
23
|
must support element) and for any request profiles they support, they must be able to
|
|
24
24
|
populate all of the defined must support elements.
|
|
@@ -27,7 +27,7 @@ module DaVinciPASTestKit
|
|
|
27
27
|
profile listed above. Then for each profile observed, it checks for the presence of
|
|
28
28
|
each must support element defined in that profile.
|
|
29
29
|
|
|
30
|
-
The test will look through the instances included in submissions made by the client
|
|
30
|
+
The test will look through the instances included in submissions made by the PAS client
|
|
31
31
|
for the following must support elements:
|
|
32
32
|
|
|
33
33
|
### PAS Medication Request
|
|
@@ -8,10 +8,10 @@ module DaVinciPASTestKit
|
|
|
8
8
|
module DaVinciPASV201
|
|
9
9
|
class PASClientApprovalGroup < Inferno::TestGroup
|
|
10
10
|
id :pas_client_v201_approval_group
|
|
11
|
-
title 'Approval
|
|
11
|
+
title 'Approval Response'
|
|
12
12
|
description %(
|
|
13
|
-
During these tests, the client will initiate a prior authorization
|
|
14
|
-
request and show it can
|
|
13
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
14
|
+
request and show it can react appropriately to an 'approved' decision.
|
|
15
15
|
)
|
|
16
16
|
run_as_group
|
|
17
17
|
|
|
@@ -24,16 +24,17 @@ module DaVinciPASTestKit
|
|
|
24
24
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
25
25
|
config: { options: { workflow_tag: APPROVAL_WORKFLOW_TAG } }
|
|
26
26
|
test from: :pas_client_v201_response_attest,
|
|
27
|
-
title: 'Check that the client registers the request as approved
|
|
27
|
+
title: 'Check that the PAS client registers the request as approved',
|
|
28
28
|
description: %(
|
|
29
|
-
|
|
29
|
+
During this test, the tester will observe the PAS client following
|
|
30
30
|
the receipt of the approved response and attest that users are able to determine
|
|
31
31
|
that the response has been approved.
|
|
32
32
|
),
|
|
33
33
|
config: { options: {
|
|
34
34
|
workflow_tag: APPROVAL_WORKFLOW_TAG,
|
|
35
|
-
attest_message:
|
|
36
|
-
|
|
35
|
+
attest_message: 'I attest that the PAS client did not error when handling the `$submit` ' \
|
|
36
|
+
"response and displays the submitted claim as 'approved' meaning that the " \
|
|
37
|
+
'user can proceed with ordering or providing the requested service.'
|
|
37
38
|
} }
|
|
38
39
|
end
|
|
39
40
|
end
|
|
@@ -7,13 +7,13 @@ module DaVinciPASTestKit
|
|
|
7
7
|
id :pas_client_v201_auth_smart
|
|
8
8
|
title 'Review Authentication Interactions'
|
|
9
9
|
description %(
|
|
10
|
-
During these tests, Inferno will verify that the client interacted with Inferno's
|
|
10
|
+
During these tests, Inferno will verify that the PAS client interacted with Inferno's
|
|
11
11
|
simulated SMART authorization server in a conformant manner when requesting access tokens
|
|
12
|
-
and that the client
|
|
12
|
+
and that the PAS client was able to use provided access tokens to make PAS
|
|
13
13
|
requests.
|
|
14
14
|
|
|
15
|
-
Before running these tests, execute the tests for at least one "PAS
|
|
16
|
-
so that the client will request an access token and use it on a PAS request.
|
|
15
|
+
Before running these tests, execute the tests for at least one "PAS Scenarios" sub-group
|
|
16
|
+
so that the PAS client will request an access token and use it on a PAS request.
|
|
17
17
|
)
|
|
18
18
|
run_as_group
|
|
19
19
|
|
|
@@ -7,13 +7,13 @@ module DaVinciPASTestKit
|
|
|
7
7
|
id :pas_client_v201_auth_udap
|
|
8
8
|
title 'Review UDAP Authentication Interactions'
|
|
9
9
|
description %(
|
|
10
|
-
During these tests, Inferno will verify that the client interacted with Inferno's
|
|
10
|
+
During these tests, Inferno will verify that the PAS client interacted with Inferno's
|
|
11
11
|
simulated UDAP authorization server in a conformant manner when requesting access tokens
|
|
12
|
-
and that the client
|
|
12
|
+
and that the PAS client was able to use provided access tokens to make PAS
|
|
13
13
|
requests.
|
|
14
14
|
|
|
15
|
-
Before running these tests, execute the tests for at least one "PAS
|
|
16
|
-
so that the client will request an access token and use it on a PAS request.
|
|
15
|
+
Before running these tests, execute the tests for at least one "PAS Scenarios" sub-group
|
|
16
|
+
so that the PAS client will request an access token and use it on a PAS request.
|
|
17
17
|
)
|
|
18
18
|
run_as_group
|
|
19
19
|
|
|
@@ -11,10 +11,10 @@ module DaVinciPASTestKit
|
|
|
11
11
|
include UserInputResponse
|
|
12
12
|
|
|
13
13
|
id :pas_client_v201_denial_group
|
|
14
|
-
title 'Denial
|
|
14
|
+
title 'Denial Response'
|
|
15
15
|
description %(
|
|
16
|
-
During these tests, the client will initiate a prior authorization
|
|
17
|
-
request and show it can
|
|
16
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
17
|
+
request and show it can react appropriately to a 'denied' decision.
|
|
18
18
|
)
|
|
19
19
|
run_as_group
|
|
20
20
|
|
|
@@ -30,17 +30,18 @@ module DaVinciPASTestKit
|
|
|
30
30
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
31
31
|
config: { options: { workflow_tag: DENIAL_WORKFLOW_TAG } }
|
|
32
32
|
test from: :pas_client_v201_response_attest,
|
|
33
|
-
title: 'Check that the client registers the request as denied
|
|
33
|
+
title: 'Check that the PAS client registers the request as denied',
|
|
34
34
|
description: %(
|
|
35
|
-
|
|
35
|
+
During this test, the tester will observe the PAS client following
|
|
36
36
|
the receipt of the denied response and attest that users are able to determine
|
|
37
37
|
that the response has been denied.
|
|
38
38
|
),
|
|
39
39
|
config: { options: {
|
|
40
40
|
workflow_tag: DENIAL_WORKFLOW_TAG,
|
|
41
|
-
attest_message:
|
|
41
|
+
attest_message: 'I attest that the PAS client did not error when handling the `$submit` ' \
|
|
42
|
+
"response and displays the submitted claim as 'denied', meaning " \
|
|
42
43
|
'that the user cannot proceed with ordering or providing the requested service without ' \
|
|
43
|
-
'making adjustments and submitting for further
|
|
44
|
+
'making adjustments and submitting for further review.'
|
|
44
45
|
} }
|
|
45
46
|
end
|
|
46
47
|
end
|
|
@@ -7,6 +7,7 @@ require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
|
7
7
|
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
8
8
|
require_relative 'workflows/pas_client_inquire_request_bundle_validation_test'
|
|
9
9
|
require_relative 'workflows/pas_client_inquire_response_bundle_validation_test'
|
|
10
|
+
require_relative '../client_input_descriptions'
|
|
10
11
|
|
|
11
12
|
module DaVinciPASTestKit
|
|
12
13
|
module DaVinciPASV201
|
|
@@ -14,54 +15,55 @@ module DaVinciPASTestKit
|
|
|
14
15
|
id :pas_client_v201_must_support
|
|
15
16
|
title 'Must Support Elements'
|
|
16
17
|
run_as_group
|
|
17
|
-
description
|
|
18
|
-
During these tests, the client will show that it supports all PAS-defined profiles and the must support
|
|
19
|
-
elements defined in them. This includes
|
|
18
|
+
description DaVinciPASTestKit.must_support_group_description('v2.0.1', 'da-vinci-pas-v201')
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
# The must support response inputs already belong to pas_client_v201_gather_must_support
|
|
21
|
+
# (the wait test below); declaring them here too, before the receive group is defined,
|
|
22
|
+
# propagates them onto the bundle validation tests in that group as well, so they can tell
|
|
23
|
+
# whether a tester-provided response was used - see
|
|
24
|
+
# PasClientResponseBundleValidationTest/PasClientInquireResponseBundleValidationTest
|
|
25
|
+
# #failed_entities_description.
|
|
26
|
+
input :ms_submit_responses, optional: true
|
|
27
|
+
input :ms_inquire_responses, optional: true
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
support elements for Inferno to respond with.
|
|
31
|
-
|
|
32
|
-
Note that Inferno will consider requests made during the workflow group of tests, so only
|
|
33
|
-
profiles and must support elements not demonstrated during those tests need to be submitted
|
|
34
|
-
as a part of these.
|
|
35
|
-
)
|
|
29
|
+
input_order :ms_submit_responses,
|
|
30
|
+
:ms_inquire_responses,
|
|
31
|
+
:client_id,
|
|
32
|
+
:session_url_path
|
|
36
33
|
|
|
37
34
|
# Combined receive group - single wait test for both submit and inquire
|
|
38
35
|
group do
|
|
39
36
|
id :pas_client_v201_must_support_receive
|
|
40
|
-
title
|
|
41
|
-
description
|
|
42
|
-
Submit $submit and $inquire requests demonstrating coverage of must support elements.
|
|
43
|
-
Optionally, provide response bundles for Inferno to use when responding. Inferno will
|
|
44
|
-
verify both the requests received and the responses provided.
|
|
45
|
-
)
|
|
37
|
+
title MUST_SUPPORT_RECEIVE_GROUP_TITLE
|
|
38
|
+
description MUST_SUPPORT_RECEIVE_GROUP_DESCRIPTION
|
|
46
39
|
run_as_group
|
|
47
40
|
|
|
48
41
|
test from: :pas_client_v201_gather_must_support
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
42
|
+
test from: :pas_client_v201_response_attest,
|
|
43
|
+
id: :pas_client_v201_response_attest_ms_submit_inquire,
|
|
44
|
+
title: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_TITLE,
|
|
45
|
+
description: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_DESCRIPTION,
|
|
46
|
+
config: { options: {
|
|
47
|
+
workflow_tag: MUST_SUPPORT_WORKFLOW_TAG,
|
|
48
|
+
no_requests_ok: true,
|
|
49
|
+
multiple_requests_ok: true,
|
|
50
|
+
attest_message: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_MESSAGE
|
|
51
|
+
} } do
|
|
52
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.0.1@41'
|
|
53
|
+
end
|
|
60
54
|
|
|
61
55
|
test from: :pas_client_v201_request_bundle_validation_test,
|
|
62
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
56
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
57
|
+
multiple_requests_ok: true } }
|
|
63
58
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
64
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
59
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
60
|
+
multiple_requests_ok: true } }
|
|
61
|
+
test from: :pas_client_v201_inquire_request_bundle_validation_test,
|
|
62
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
63
|
+
multiple_requests_ok: true } }
|
|
64
|
+
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
65
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
66
|
+
multiple_requests_ok: true } }
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
# $submit Request Must Support (fail when errors detected)
|
|
@@ -70,22 +72,6 @@ module DaVinciPASTestKit
|
|
|
70
72
|
# $submit Response Must Support (skip when errors detected)
|
|
71
73
|
group from: :pas_client_v201_submit_response_must_support
|
|
72
74
|
|
|
73
|
-
# $inquire Bundle Conformance Validation
|
|
74
|
-
group do
|
|
75
|
-
title '$inquire Bundle Conformance'
|
|
76
|
-
description %(
|
|
77
|
-
Verify that the $inquire request bundles sent by the client are conformant
|
|
78
|
-
and that the $inquire response bundles provided for Inferno to send back
|
|
79
|
-
are conformant.
|
|
80
|
-
)
|
|
81
|
-
run_as_group
|
|
82
|
-
|
|
83
|
-
test from: :pas_client_v201_inquire_request_bundle_validation_test,
|
|
84
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
85
|
-
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
86
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
75
|
# $inquire Request Must Support (fail when errors detected)
|
|
90
76
|
group from: :pas_client_v201_inquire_must_support
|
|
91
77
|
|
|
@@ -13,10 +13,10 @@ module DaVinciPASTestKit
|
|
|
13
13
|
include UserInputResponse
|
|
14
14
|
|
|
15
15
|
id :pas_client_v201_pended_group
|
|
16
|
-
title 'Pended
|
|
16
|
+
title 'Pended Response'
|
|
17
17
|
description %(
|
|
18
|
-
During these tests, the client will initiate a prior authorization
|
|
19
|
-
request and show it can
|
|
18
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
19
|
+
request and show it can react appropriately to a 'pended' decision, including
|
|
20
20
|
waiting for a notification that an update has been made
|
|
21
21
|
and making an inquiry request to retrieve the final result.
|
|
22
22
|
)
|
|
@@ -31,15 +31,15 @@ module DaVinciPASTestKit
|
|
|
31
31
|
:session_url_path
|
|
32
32
|
|
|
33
33
|
group do
|
|
34
|
-
title 'Perform the pended
|
|
34
|
+
title 'Perform the pended scenario'
|
|
35
35
|
description %(
|
|
36
|
-
All interactions for the pended prior authorization request
|
|
37
|
-
between Inferno and the client
|
|
36
|
+
All interactions for the pended prior authorization request scenario
|
|
37
|
+
between Inferno and the PAS client will be performed during this group
|
|
38
38
|
including
|
|
39
|
-
- A `$submit` request from the client to Inferno where Inferno returns a pended response.
|
|
39
|
+
- A `$submit` request from the PAS client to Inferno where Inferno returns a pended response.
|
|
40
40
|
- A notification that the prior authorization decision has been finalized from Inferno
|
|
41
|
-
to the client
|
|
42
|
-
- An `$inquire` request from the client to Inferno where Inferno returns an approved response.
|
|
41
|
+
to the PAS client.
|
|
42
|
+
- An `$inquire` request from the PAS client to Inferno where Inferno returns an approved response.
|
|
43
43
|
)
|
|
44
44
|
|
|
45
45
|
test from: :pas_client_v201_pended_submit_test
|
|
@@ -53,17 +53,19 @@ module DaVinciPASTestKit
|
|
|
53
53
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
54
54
|
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
55
55
|
test from: :pas_client_v201_response_attest,
|
|
56
|
-
title: 'Check that the client registers the request as pended
|
|
56
|
+
title: 'Check that the PAS client registers the request as pended',
|
|
57
57
|
description: %(
|
|
58
|
-
|
|
58
|
+
During this test, the tester will observe the PAS client following
|
|
59
59
|
the receipt of the pended response and attest that users are able to determine
|
|
60
60
|
that the response has been pended and a decision will be forthcoming.
|
|
61
61
|
),
|
|
62
62
|
config: { options: {
|
|
63
63
|
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
operation_tag: SUBMIT_TAG,
|
|
65
|
+
multiple_requests_ok: true,
|
|
66
|
+
attest_message: "I attest that the PAS client did not error when handling the 'pended' " \
|
|
67
|
+
'response to the submitted claim and that it indicated to users that a final decision ' \
|
|
68
|
+
'on the request had not yet been made.'
|
|
67
69
|
} }
|
|
68
70
|
end
|
|
69
71
|
|
|
@@ -73,7 +75,7 @@ module DaVinciPASTestKit
|
|
|
73
75
|
test from: :subscriptions_r4_client_notification_input_verification,
|
|
74
76
|
title: 'Tester-provided event notification Bundle is conformant',
|
|
75
77
|
description: %(
|
|
76
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
78
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
77
79
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
78
80
|
or mocked by Inferno based on details in the Subscription and submitted Claim, is conformant
|
|
79
81
|
to Subscription Backport IG requirements.
|
|
@@ -87,10 +89,10 @@ module DaVinciPASTestKit
|
|
|
87
89
|
test from: :subscriptions_r4_client_notification_input_payload_verification,
|
|
88
90
|
title: 'Tester-provided event notification Bundle matches the Subscription',
|
|
89
91
|
description: %(
|
|
90
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
92
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
91
93
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
92
94
|
or mocked by Inferno based on details in the Subscription and submitted Claim, matches the details
|
|
93
|
-
requested in the Subscription provided during the
|
|
95
|
+
requested in the Subscription provided during the "Subscription Setup" tests.
|
|
94
96
|
),
|
|
95
97
|
simulation_verification: true,
|
|
96
98
|
config: {
|
|
@@ -102,9 +104,9 @@ module DaVinciPASTestKit
|
|
|
102
104
|
# and testers have to demonstrate and attest that their systems work, which will require some
|
|
103
105
|
# correspondence.
|
|
104
106
|
test from: :subscriptions_r4_client_event_notification_verification,
|
|
105
|
-
title: '
|
|
107
|
+
title: 'PAS client accepts the "claim updated" event notification',
|
|
106
108
|
description: %(
|
|
107
|
-
This test checks that the client responds appropriately to the event notification request.
|
|
109
|
+
This test checks that the PAS client responds appropriately to the event notification request.
|
|
108
110
|
)
|
|
109
111
|
end
|
|
110
112
|
|
|
@@ -116,15 +118,19 @@ module DaVinciPASTestKit
|
|
|
116
118
|
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
117
119
|
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
118
120
|
test from: :pas_client_v201_response_attest,
|
|
119
|
-
title: 'Check that the client registers the request as approved
|
|
121
|
+
title: 'Check that the PAS client registers the request as approved',
|
|
120
122
|
description: %(
|
|
121
|
-
|
|
123
|
+
During this test, the tester will observe the PAS client following
|
|
122
124
|
the receipt of the inquiry response with a final decision and attest that users
|
|
123
125
|
are able to determine that the response has been approved in full.
|
|
124
126
|
),
|
|
125
127
|
config: { options: {
|
|
126
128
|
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
127
|
-
|
|
129
|
+
operation_tag: INQUIRE_TAG,
|
|
130
|
+
multiple_requests_ok: true,
|
|
131
|
+
attest_message: 'I attest that the PAS client did not error when handling the `$inquire` ' \
|
|
132
|
+
"response and displays the submitted claim as 'approved' meaning that the " \
|
|
133
|
+
'user can proceed with ordering or providing the requested service.'
|
|
128
134
|
} }
|
|
129
135
|
end
|
|
130
136
|
end
|
|
@@ -12,8 +12,8 @@ module DaVinciPASTestKit
|
|
|
12
12
|
id :pas_client_v201_registration
|
|
13
13
|
title 'Client Registration'
|
|
14
14
|
description %(
|
|
15
|
-
Register the client
|
|
16
|
-
including configuration
|
|
15
|
+
Register the PAS client with Inferno's simulated PAS Server,
|
|
16
|
+
including configuration necessary to make requests against
|
|
17
17
|
Inferno's simulated PAS endpoints and enable authentication and authorization of PAS requests.
|
|
18
18
|
)
|
|
19
19
|
run_as_group
|
|
@@ -8,8 +8,8 @@ module DaVinciPASTestKit
|
|
|
8
8
|
id :pas_client_v201_subscription_setup
|
|
9
9
|
title 'Subscription Setup'
|
|
10
10
|
description %(
|
|
11
|
-
These tests verify that the client can create a Subscription instance
|
|
12
|
-
that will tell the Payer how to notify the client when pended claims
|
|
11
|
+
These tests verify that the PAS client can create a Subscription instance
|
|
12
|
+
that will tell the Payer how to notify the PAS client when pended claims
|
|
13
13
|
are updated.
|
|
14
14
|
)
|
|
15
15
|
run_as_group
|
|
@@ -6,9 +6,9 @@ module DaVinciPASTestKit
|
|
|
6
6
|
module DaVinciPASV201
|
|
7
7
|
class PASClientWorkflowsGroup < Inferno::TestGroup
|
|
8
8
|
id :pas_client_v201_workflows
|
|
9
|
-
title 'PAS
|
|
9
|
+
title 'PAS Scenarios'
|
|
10
10
|
description %(
|
|
11
|
-
The
|
|
11
|
+
The scenario tests verify that the PAS client can participate in complete end-to-end prior
|
|
12
12
|
authorization interactions, initiating requests and reacting appropriately to the
|
|
13
13
|
responses returned.
|
|
14
14
|
)
|