Testing HTTP Basic Authentication Middleware Implementation in ruby-grape/grape
This test suite validates the HTTP Basic Authentication middleware functionality in the Grape API framework. It ensures proper authentication handling and response behavior for both valid and invalid credentials in API endpoints.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
ruby-grape/grape
spec/grape/middleware/auth/base_spec.rb
# frozen_string_literal: true
describe Grape::Middleware::Auth::Base do
subject do
Class.new(Grape::API) do
http_basic realm: 'my_realm' do |user, password|
user && password && user == password
end
get '/authorized' do
'DONE'
end
end
end
let(:app) { subject }
it 'authenticates if given valid creds' do
get '/authorized', {}, 'HTTP_AUTHORIZATION' => encode_basic_auth('admin', 'admin')
expect(last_response).to be_successful
expect(last_response.body).to eq('DONE')
end
it 'throws a 401 is wrong auth is given' do
get '/authorized', {}, 'HTTP_AUTHORIZATION' => encode_basic_auth('admin', 'wrong')
expect(last_response).to be_unauthorized
end
end