Sha256: dc128b05ab25ffb8888d59d59c21efa3b27ec977fc1dd21210c0c4025631811e

Contents?: true

Size: 1.75 KB

Versions: 10

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

module CarinForBlueButtonTestKit
  module CARIN4BBV200DEVNONFINANCIAL
    class WellKnownCapabilitiesTest < Inferno::Test
      id :c4bb_v200devnonfinancial_smart_capabilities
      title 'Server Well-known configuration declares support for the required SMART capabilities'
      description %(
        Servers SHALL support the following [SMART on FHIR
        capabilities](https://hl7.org/fhir/us/carin-bb/Security_And_Privacy_Considerations.html#authentication-and-authorization-requirements):

        * `launch-standalone`
        * `client-public`
        * `client-confidential-symmetric`
        * `sso-openid-connect`
        * `context-standalone-patient`
        * `permission-offline`
        * `permission-patient`
        * `permission-user`
      )

      input :well_known_configuration

      run do
        skip_if well_known_configuration.blank?, 'No SMART well-known configuration received'

        assert_valid_json(well_known_configuration)

        advertised_capabilities = JSON.parse(well_known_configuration)['capabilities']

        assert advertised_capabilities.is_a?(Array),
               "Expected `capabilities` field to be an Array, but found #{advertised_capabilities.class.name}"

        required_capabilities = config.options[:required_capabilities] || []

        missing_capabilities = required_capabilities - advertised_capabilities

        missing_capabilities_string =
          missing_capabilities
          .map { |capability| "\n* `#{capability}`" }
          .join

        assert missing_capabilities.empty?,
               "
               Server did not advertise support for the following required capabilities:
               #{missing_capabilities_string}
               "
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
carin_for_blue_button_test_kit-0.13.3 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.13.2 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.13.1 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.13.0 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.12.1 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.12.0 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.11.2 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.11.1 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.11.0 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb
carin_for_blue_button_test_kit-0.10.0 lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0-dev-nonfinancial/c4bb_smart_launch/well_known_capabilities_test.rb