demarches-normaliennes/spec/controllers/sessions/sessions_controller_spec.rb

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