demarches-normaliennes/spec/controllers/sessions/sessions_controller_spec.rb
2019-08-12 13:47:01 +02:00

64 lines
1.8 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(:instructeur) { create(:instructeur) }
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 instructeur connected' do
before do
@request.env["devise.mapping"] = Devise.mappings[:instructeur]
allow_any_instance_of(described_class).to receive(:instructeur_signed_in?).and_return(true)
allow_any_instance_of(described_class).to receive(:current_instructeur).and_return(instructeur)
end
it 'calls sign out for instructeur' do
expect_any_instance_of(described_class).to receive(:sign_out).with(:instructeur)
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