60 lines
1.6 KiB
Ruby
60 lines
1.6 KiB
Ruby
# encoding: UTF-8
|
|
# frozen_string_literal: true
|
|
|
|
module API
|
|
module V2
|
|
class AuthTest < Grape::API
|
|
get('/auth_test') do
|
|
authenticate!
|
|
end
|
|
end
|
|
|
|
class Mount
|
|
mount AuthTest
|
|
end
|
|
end
|
|
end
|
|
|
|
describe API::V2::Helpers, type: :request do
|
|
context '#authentic?' do
|
|
let!(:member) { create(:member, :level_3) }
|
|
let!(:token) { jwt_for(member) }
|
|
|
|
context 'Authenticate using headers' do
|
|
it 'should response successfully' do
|
|
api_get '/api/v2/auth_test', foo: 'bar', hello: 'world', token: token
|
|
expect(response).to be_successful
|
|
end
|
|
|
|
it 'should not return authorization header' do
|
|
api_get '/api/v2/auth_test', foo: 'bar', hello: 'world', token: token
|
|
expect(response.headers).not_to include('Authorization')
|
|
end
|
|
|
|
it 'should set current user' do
|
|
api_get '/api/v2/auth_test', foo: 'bar', hello: 'world', token: token
|
|
expect(response.body).to eq member.reload.to_json
|
|
end
|
|
|
|
it 'should fail authorization' do
|
|
get '/api/v2/auth_test'
|
|
|
|
expect(response.code).to eq '401'
|
|
expect(response).to include_api_error('jwt.decode_and_verify')
|
|
end
|
|
end
|
|
end
|
|
|
|
context '#authentic_include_username?' do
|
|
let!(:member) { create(:member, username: 'foobar') }
|
|
let!(:token) { jwt_for(member, { username: 'foobar' }) }
|
|
|
|
context 'Authenticate using headers' do
|
|
it 'should set current user' do
|
|
api_get '/api/v2/auth_test', token: token
|
|
expect(response.body).to eq member.reload.to_json
|
|
end
|
|
end
|
|
end
|
|
end
|