Sha256: 16eeee89c4ec8da0592126e6d741430101f6569d28bd7223eedeb840b7b77bd5

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

shared_examples_for 'a token authenticatable api' do
  let(:token_value) { 'abc123' }

  context 'with authorization header' do
    let(:headers) { {'Authorization' => "Bearer #{token_value}"} }

    include_examples 'token validation'
  end

  context 'with access token parameter' do
    let(:params) { {'access_token' => token_value} }

    include_examples 'token validation'
  end

  context 'without authentication information' do
    before { subject }

    it 'should be unauthorized' do
      expect(response).to be_http_unauthorized
    end

    it 'should return an authenticate header without details' do
      expect(response.headers).to include('WWW-Authenticate' => 'Bearer')
    end
  end

  context 'with environment variables for password credentials' do
    before do
      ENV['G5_AUTH_USERNAME'] = 'my.user@test.host'
      ENV['G5_AUTH_PASSWORD'] = 'my_secret'
    end

    after do
      ENV['G5_AUTH_USERNAME'] = nil
      ENV['G5_AUTH_PASSWORD'] = nil
    end

    before { subject }

    it 'should be unauthorized' do
      expect(response).to be_http_unauthorized
    end

    it 'should return an authenticate header without details' do
      expect(response.headers).to include('WWW-Authenticate' => 'Bearer')
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
g5_authenticatable_api-0.4.1 spec/support/shared_examples/token_authenticatable_api.rb
g5_authenticatable_api-0.4.0 spec/support/shared_examples/token_authenticatable_api.rb
g5_authenticatable_api-0.3.2 spec/support/shared_examples/token_authenticatable_api.rb
g5_authenticatable_api-0.3.1 spec/support/shared_examples/token_authenticatable_api.rb
g5_authenticatable_api-0.3.0 spec/support/shared_examples/token_authenticatable_api.rb