63 lines
1.7 KiB
Ruby
63 lines
1.7 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Sessions::SessionsController, type: :controller do
|
|
controller Sessions::SessionsController do
|
|
def create
|
|
render json: ''
|
|
end
|
|
end
|
|
|
|
let(:user) { create(:user) }
|
|
let(:gestionnaire) { create(:gestionnaire) }
|
|
let(:administrateur) { create(:administrateur) }
|
|
|
|
describe '#create' do
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:user]
|
|
end
|
|
|
|
it 'calls before_sign_in' do
|
|
expect_any_instance_of(Sessions::SessionsController).to receive(:before_sign_in)
|
|
post :create
|
|
end
|
|
end
|
|
|
|
describe '#create with user connected' do
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:user]
|
|
|
|
allow_any_instance_of(described_class).to receive(:user_signed_in?).and_return(true)
|
|
end
|
|
|
|
it 'calls sign out for user' do
|
|
expect_any_instance_of(described_class).to receive(:sign_out).with(:user)
|
|
post :create
|
|
end
|
|
end
|
|
|
|
describe '#create with gestionnaire connected' do
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:gestionnaire]
|
|
|
|
allow_any_instance_of(described_class).to receive(:gestionnaire_signed_in?).and_return(true)
|
|
end
|
|
|
|
it 'calls sign out for gestionnaire' do
|
|
expect_any_instance_of(described_class).to receive(:sign_out).with(:gestionnaire)
|
|
post :create
|
|
end
|
|
end
|
|
|
|
describe '#create with administrateur connected' do
|
|
before do
|
|
@request.env["devise.mapping"] = Devise.mappings[:administrateur]
|
|
|
|
allow_any_instance_of(described_class).to receive(:administrateur_signed_in?).and_return(true)
|
|
end
|
|
|
|
it 'calls sign out for administrateur' do
|
|
expect_any_instance_of(described_class).to receive(:sign_out).with(:administrateur)
|
|
post :create
|
|
end
|
|
end
|
|
end
|