Sha256: cca7026864f3ee57fdb98a2aef11a7a79b159945b63150c9aa22b5fb39b5d004

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true
require 'rspeckled/spec_helpers/rspeckled'
require 'drillbit/responses/invalid_token'

# rubocop:disable Metrics/LineLength
module    Drillbit
module    Responses
describe  InvalidToken, singletons: Erratum::Configuration do
  it 'returns the proper response' do
    Erratum.configuration.url_mappings = {
      'external_documentation_urls'  => {
        'errors.responses.invalid_token' => 'http://example.com/foo',
      },
      'developer_documentation_urls' => {
        'errors.responses.invalid_token' => 'http://example.com/foo',
      },
    }

    request                   = { 'HTTP_HOST' => 'api.example.com' }
    status, headers, response = InvalidToken.call(request, application_name: 'my_app')

    expect(status).to                 eql 401
    expect(headers).to                eql('WWW-Authenticate' => 'Token realm="my_app"')
    expect(JSON.load(response[0])).to include(
      'errors' => [
                    include(
                      'id'     => match(/[a-f0-9\-]+/),
                      'links'  => {
                        'about'         => nil,
                        'documentation' => nil,
                      },
                      'status' => 401,
                      'code'   => 'errors.invalid_token',
                      'title'  => 'Invalid or Unauthorized Token',
                      'detail' => 'Either the token you passed is invalid or is not allowed to ' \
                                  'perform this action.',
                      'source' => {},
                    ),
                  ],
    )
  end
end
end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
drillbit-2.11.0 spec/drillbit/invalid_token_spec.rb
drillbit-2.10.0 spec/drillbit/invalid_token_spec.rb