demarches-normaliennes/spec/controllers/users/dossiers/invites_controller_spec.rb
2017-04-04 16:59:38 +02:00

78 lines
2 KiB
Ruby

describe Users::Dossiers::InvitesController, type: :controller do
describe '#authenticate_user!' do
let(:user) { create :user }
let(:invite) { create :invite }
context 'when email is not set' do
context 'when user is not connected' do
before do
get :show, params: {id: invite.id}
end
it { is_expected.to redirect_to new_user_session_path }
end
context 'when user is connected' do
let!(:invite) { create :invite, user: user }
before do
sign_in invite.user
get :show, params: {id: invite.id}
end
it { expect(response.status).to eq 200 }
end
end
context 'when email is set' do
before do
get :show, params: {id: invite.id, email: email}
end
context 'when email is blank' do
let(:email) { '' }
it { is_expected.to redirect_to new_user_session_path }
end
context 'when email is not blank' do
context 'when email is affected at an user' do
let(:email) { user.email }
it { is_expected.to redirect_to new_user_session_path }
end
context 'when email is not affected at an user' do
let(:email) { 'new_user@octo.com' }
it { is_expected.to redirect_to new_user_registration_path(user_email: email) }
end
end
end
end
describe '#GET show' do
let(:user) { create :user }
let(:invite) { create :invite, email: email, dossier: (create :dossier) }
subject { get :show, params: {id: invite.id} }
before do
sign_in user
end
context 'when invitation ID is attach at the user email account' do
let(:email) { user.email }
it { expect(subject.status).to eq 200 }
end
context 'when invitation ID is not attach at the user email account' do
let(:email) { 'fake@email.com' }
it { expect(subject.status).to eq 302 }
it { is_expected.to redirect_to users_dossiers_path }
end
end
end