diff --git a/app/controllers/administrateurs/groupe_instructeurs_controller.rb b/app/controllers/administrateurs/groupe_instructeurs_controller.rb index c9ecd1563..50618a6fe 100644 --- a/app/controllers/administrateurs/groupe_instructeurs_controller.rb +++ b/app/controllers/administrateurs/groupe_instructeurs_controller.rb @@ -242,7 +242,7 @@ module Administrateurs end if instructeurs.present? - flash.now[:notice] = if procedure.routing_enabled? + flash[:notice] = if procedure.routing_enabled? t('.assignment', count: instructeurs.size, emails: instructeurs.map(&:email).join(', '), @@ -264,7 +264,7 @@ module Administrateurs end end - flash.now[:alert] = errors.join(". ") if !errors.empty? + flash[:alert] = errors.join(". ") if !errors.empty? @procedure = procedure @instructeurs = paginated_instructeurs @@ -272,10 +272,10 @@ module Administrateurs if procedure.routing_enabled? @groupe_instructeur = groupe_instructeur - render :show + redirect_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur) else @groupes_instructeurs = paginated_groupe_instructeurs - render :index + redirect_to admin_procedure_groupe_instructeurs_path(@procedure) end end diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb index 6e4b823dc..9325ad1ef 100644 --- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb @@ -343,7 +343,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do context 'when all emails are valid' do let(:emails) { ['test@b.gouv.fr', 'test2@b.gouv.fr'] } it do - expect(subject).to render_template(:index) + expect(subject).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure_non_routee)) expect(subject.request.flash[:alert]).to be_nil expect(subject.request.flash[:notice]).to be_present end @@ -352,7 +352,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do context 'when there is at least one bad email' do let(:emails) { ['badmail', 'instructeur2@gmail.com'] } it do - expect(subject).to render_template(:index) + expect(subject).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure_non_routee)) expect(subject.request.flash[:alert]).to be_present expect(subject.request.flash[:notice]).to be_present end @@ -362,7 +362,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do let(:instructeur) { create(:instructeur) } before { procedure_non_routee.groupe_instructeurs.first.add_instructeurs(emails: [instructeur.user.email]) } let(:emails) { [instructeur.email] } - it { expect(subject).to render_template(:index) } + it { expect(subject).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure_non_routee)) } end context 'when signed in admin comes from manager' do @@ -403,7 +403,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do it 'validates changes and responses' do expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails) expect(flash.notice).to be_present - expect(response).to render_template(:show) + expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) expect(procedure.routing_enabled?).to be_truthy expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with( gi_1_2, @@ -442,7 +442,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do context 'of an instructeur already in the group' do let(:new_instructeur_emails) { [instructeur.email] } before { do_request } - it { expect(response).to render_template(:show) } + it do + expect(flash.alert).not_to be_present + expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) + end end context 'of badly formed email' do @@ -450,14 +453,17 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do before { do_request } it do expect(flash.alert).to be_present - expect(response).to render_template(:show) + expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) end end context 'of an empty string' do let(:new_instructeur_emails) { [''] } before { do_request } - it { expect(response).to render_template(:show) } + it do + expect(flash.alert).to be_present + expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) + end end context 'when connected as an administrateur from manager' do