Sha256: 0329b66b9c6b4714a3396d82e808c308834df81568d2930930441452d6dfc997

Contents?: true

Size: 1.39 KB

Versions: 19

Compression:

Stored size: 1.39 KB

Contents

module SMARTAppLaunch
  class WellKnownCapabilitiesSTU1Test < Inferno::Test
    title 'Well-known configuration contains required fields'
    id :well_known_capabilities_stu1
    input :well_known_configuration
    description %(
      The JSON from .well-known/smart-configuration contains the following
      required fields: `authorization_endpoint`, `token_endpoint`,
      `capabilities`
    )

    def required_capabilities
      {
        'authorization_endpoint' => String,
        'token_endpoint' => String,
        'capabilities' => Array
      }
    end

    run do
      skip_if well_known_configuration.blank?, 'No well-known configuration found'
      config = JSON.parse(well_known_configuration)

      required_capabilities.each do |key, type|
        assert config.key?(key), "Well-known configuration does not include `#{key}`"
        assert config[key].present?, "Well-known configuration field `#{key}` is blank"
        assert config[key].is_a?(type), "Well-known `#{key}` must be type: #{type.to_s.downcase}"
      end

      non_string_capabilities = config['capabilities'].reject { |capability| capability.is_a? String }

      assert non_string_capabilities.blank?, %(
        Well-known `capabilities` field must be an array of strings, but found
        non-string values:
        #{non_string_capabilities.map { |value| "`#{value.nil? ? 'nil' : value}`" }.join(', ')}
      )
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
smart_app_launch_test_kit-0.6.0 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.5.1 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.5.0 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.6 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.5 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.4 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.3 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.2 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.1 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.4.0 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.3.0 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.2.2 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.2.1 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.2.0 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.1.8 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.1.7 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.1.6 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.1.5 lib/smart_app_launch/well_known_capabilities_stu1_test.rb
smart_app_launch_test_kit-0.1.4 lib/smart_app_launch/well_known_capabilities_stu1_test.rb