52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
|
require_relative '../../spec_helper_min.rb'
|
||
|
require_relative '../../../lib/carto/authentication_manager.rb'
|
||
|
|
||
|
module Carto
|
||
|
describe AuthenticationManager do
|
||
|
|
||
|
describe '::validate_session' do
|
||
|
subject { described_class.validate_session(warden_context, request, user) }
|
||
|
|
||
|
let!(:user) { create(:user) }
|
||
|
let(:valid_session) { { sec_token: user.security_token } }
|
||
|
let(:warden_context) { mock }
|
||
|
let(:request) { mock }
|
||
|
|
||
|
context 'when session is valid' do
|
||
|
before { warden_context.expects(:session).returns(valid_session) }
|
||
|
|
||
|
it { should be_true }
|
||
|
end
|
||
|
|
||
|
context 'when no session' do
|
||
|
before do
|
||
|
request.expects(:reset_session)
|
||
|
warden_context.expects(:session).returns({})
|
||
|
end
|
||
|
|
||
|
it { should be_false }
|
||
|
end
|
||
|
|
||
|
context 'when session was invalidated' do
|
||
|
let(:session) { { sec_token: 'old-security-token' } }
|
||
|
|
||
|
before { warden_context.expects(:session).returns(session) }
|
||
|
|
||
|
it 'raises an error' do
|
||
|
expect { subject }.to raise_error(Carto::ExpiredSessionError)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when authenticating with a valid method and no session' do
|
||
|
before do
|
||
|
request.expects(:reset_session)
|
||
|
warden_context.expects(:session).raises(Warden::NotAuthenticated)
|
||
|
end
|
||
|
|
||
|
it { should be_false }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|