2019-03-25 10:53:45 +01:00
|
|
|
|
describe Users::CommencerController, type: :controller do
|
2018-11-01 13:00:35 +01:00
|
|
|
|
let(:user) { create(:user) }
|
2019-01-16 11:57:58 +01:00
|
|
|
|
let(:published_procedure) { create(:procedure, :published) }
|
|
|
|
|
let(:draft_procedure) { create(:procedure, :with_path) }
|
2018-11-01 13:00:35 +01:00
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
describe '#commencer' do
|
2018-11-01 13:00:35 +01:00
|
|
|
|
subject { get :commencer, params: { path: path } }
|
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
context 'when the path is for a published procedure' do
|
|
|
|
|
let(:path) { published_procedure.path }
|
2018-11-01 13:00:35 +01:00
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
it 'renders the view' do
|
|
|
|
|
expect(subject.status).to eq(200)
|
|
|
|
|
expect(subject).to render_template('show')
|
|
|
|
|
expect(assigns(:procedure)).to eq published_procedure
|
2021-06-24 11:57:05 +02:00
|
|
|
|
expect(assigns(:revision)).to eq published_procedure.published_revision
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2019-03-27 17:46:35 +01:00
|
|
|
|
context 'when the path is for a draft procedure' do
|
2019-01-16 11:57:58 +01:00
|
|
|
|
let(:path) { draft_procedure.path }
|
|
|
|
|
|
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
context 'when the path does not exist' do
|
2018-11-01 13:00:35 +01:00
|
|
|
|
let(:path) { 'hello' }
|
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
2018-11-01 13:00:35 +01:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
describe '#commencer_test' do
|
|
|
|
|
subject { get :commencer_test, params: { path: path } }
|
|
|
|
|
|
|
|
|
|
context 'when the path is for a draft procedure' do
|
|
|
|
|
let(:path) { draft_procedure.path }
|
|
|
|
|
|
|
|
|
|
it 'renders the view' do
|
|
|
|
|
expect(subject.status).to eq(200)
|
|
|
|
|
expect(subject).to render_template('show')
|
|
|
|
|
expect(assigns(:procedure)).to eq draft_procedure
|
2021-06-24 11:57:05 +02:00
|
|
|
|
expect(assigns(:revision)).to eq draft_procedure.draft_revision
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
2018-11-01 13:00:35 +01:00
|
|
|
|
end
|
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
context 'when the path is for a published procedure' do
|
|
|
|
|
let(:path) { published_procedure.path }
|
2018-11-01 13:00:35 +01:00
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
|
|
|
|
end
|
2018-11-01 13:00:35 +01:00
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
context 'when the path does not exist' do
|
2018-11-01 13:00:35 +01:00
|
|
|
|
let(:path) { 'hello' }
|
|
|
|
|
|
2019-01-16 11:57:58 +01:00
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
2018-11-01 13:00:35 +01:00
|
|
|
|
end
|
|
|
|
|
end
|
2019-01-16 11:57:58 +01:00
|
|
|
|
|
|
|
|
|
describe '#sign_in' do
|
2019-03-27 17:46:35 +01:00
|
|
|
|
context 'for a published procedure' do
|
|
|
|
|
subject { get :sign_in, params: { path: published_procedure.path } }
|
|
|
|
|
|
|
|
|
|
it 'set the path to return after sign-in to the procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_path(path: published_procedure.path))
|
|
|
|
|
end
|
2019-01-16 11:57:58 +01:00
|
|
|
|
|
2019-03-27 17:46:35 +01:00
|
|
|
|
it { expect(subject).to redirect_to(new_user_session_path) }
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
|
|
|
|
|
2019-03-27 17:46:35 +01:00
|
|
|
|
context 'for a draft procedure' do
|
|
|
|
|
subject { get :sign_in, params: { path: draft_procedure.path } }
|
|
|
|
|
|
|
|
|
|
it 'set the path to return after sign-in to the draft procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_test_path(path: draft_procedure.path))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it { expect(subject).to redirect_to(new_user_session_path) }
|
|
|
|
|
end
|
2019-04-04 14:03:03 +02:00
|
|
|
|
|
|
|
|
|
context 'when the path doesn’t exist' do
|
|
|
|
|
subject { get :sign_in, params: { path: 'hello' } }
|
|
|
|
|
|
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
|
|
|
|
end
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe '#sign_up' do
|
2019-03-27 17:46:35 +01:00
|
|
|
|
context 'for a published procedure' do
|
|
|
|
|
subject { get :sign_up, params: { path: published_procedure.path } }
|
2019-01-16 11:57:58 +01:00
|
|
|
|
|
2019-03-27 17:46:35 +01:00
|
|
|
|
it 'set the path to return after sign-up to the procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_path(path: published_procedure.path))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it { expect(subject).to redirect_to(new_user_registration_path) }
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
|
|
|
|
|
2019-03-27 17:46:35 +01:00
|
|
|
|
context 'for a draft procedure' do
|
|
|
|
|
subject { get :sign_up, params: { path: draft_procedure.path } }
|
|
|
|
|
|
|
|
|
|
it 'set the path to return after sign-up to the draft procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_test_path(path: draft_procedure.path))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it { expect(subject).to redirect_to(new_user_registration_path) }
|
|
|
|
|
end
|
2019-04-04 14:03:03 +02:00
|
|
|
|
|
|
|
|
|
context 'when the path doesn’t exist' do
|
|
|
|
|
subject { get :sign_up, params: { path: 'hello' } }
|
|
|
|
|
|
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
|
|
|
|
end
|
2019-01-16 11:57:58 +01:00
|
|
|
|
end
|
2019-04-02 15:03:35 +02:00
|
|
|
|
|
|
|
|
|
describe '#france_connect' do
|
|
|
|
|
context 'for a published procedure' do
|
|
|
|
|
subject { get :france_connect, params: { path: published_procedure.path } }
|
|
|
|
|
|
|
|
|
|
it 'set the path to return after sign-up to the procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_path(path: published_procedure.path))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it { expect(subject).to redirect_to(france_connect_particulier_path) }
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
context 'for a draft procedure' do
|
|
|
|
|
subject { get :france_connect, params: { path: draft_procedure.path } }
|
|
|
|
|
|
|
|
|
|
it 'set the path to return after sign-up to the draft procedure start page' do
|
|
|
|
|
subject
|
|
|
|
|
expect(controller.stored_location_for(:user)).to eq(commencer_test_path(path: draft_procedure.path))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it { expect(subject).to redirect_to(france_connect_particulier_path) }
|
|
|
|
|
end
|
2019-04-04 14:03:03 +02:00
|
|
|
|
|
|
|
|
|
context 'when the path doesn’t exist' do
|
|
|
|
|
subject { get :france_connect, params: { path: 'hello' } }
|
|
|
|
|
|
|
|
|
|
it 'redirects with an error message' do
|
|
|
|
|
expect(subject).to redirect_to(root_path)
|
|
|
|
|
end
|
|
|
|
|
end
|
2019-04-02 15:03:35 +02:00
|
|
|
|
end
|
2018-11-01 13:00:35 +01:00
|
|
|
|
end
|