fix(Administrateurs::GroupesInstructeur#add_instructeur): re-rendering a template lead to miss usage of pagination. redirect after add_instructeur
This commit is contained in:
parent
e24caeb4e2
commit
47f2194e92
2 changed files with 17 additions and 11 deletions
|
@ -242,7 +242,7 @@ module Administrateurs
|
||||||
end
|
end
|
||||||
|
|
||||||
if instructeurs.present?
|
if instructeurs.present?
|
||||||
flash.now[:notice] = if procedure.routing_enabled?
|
flash[:notice] = if procedure.routing_enabled?
|
||||||
t('.assignment',
|
t('.assignment',
|
||||||
count: instructeurs.size,
|
count: instructeurs.size,
|
||||||
emails: instructeurs.map(&:email).join(', '),
|
emails: instructeurs.map(&:email).join(', '),
|
||||||
|
@ -264,7 +264,7 @@ module Administrateurs
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
flash.now[:alert] = errors.join(". ") if !errors.empty?
|
flash[:alert] = errors.join(". ") if !errors.empty?
|
||||||
|
|
||||||
@procedure = procedure
|
@procedure = procedure
|
||||||
@instructeurs = paginated_instructeurs
|
@instructeurs = paginated_instructeurs
|
||||||
|
@ -272,10 +272,10 @@ module Administrateurs
|
||||||
|
|
||||||
if procedure.routing_enabled?
|
if procedure.routing_enabled?
|
||||||
@groupe_instructeur = groupe_instructeur
|
@groupe_instructeur = groupe_instructeur
|
||||||
render :show
|
redirect_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur)
|
||||||
else
|
else
|
||||||
@groupes_instructeurs = paginated_groupe_instructeurs
|
@groupes_instructeurs = paginated_groupe_instructeurs
|
||||||
render :index
|
redirect_to admin_procedure_groupe_instructeurs_path(@procedure)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -343,7 +343,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
context 'when all emails are valid' do
|
context 'when all emails are valid' do
|
||||||
let(:emails) { ['test@b.gouv.fr', 'test2@b.gouv.fr'] }
|
let(:emails) { ['test@b.gouv.fr', 'test2@b.gouv.fr'] }
|
||||||
it do
|
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[:alert]).to be_nil
|
||||||
expect(subject.request.flash[:notice]).to be_present
|
expect(subject.request.flash[:notice]).to be_present
|
||||||
end
|
end
|
||||||
|
@ -352,7 +352,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
context 'when there is at least one bad email' do
|
context 'when there is at least one bad email' do
|
||||||
let(:emails) { ['badmail', 'instructeur2@gmail.com'] }
|
let(:emails) { ['badmail', 'instructeur2@gmail.com'] }
|
||||||
it do
|
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[:alert]).to be_present
|
||||||
expect(subject.request.flash[:notice]).to be_present
|
expect(subject.request.flash[:notice]).to be_present
|
||||||
end
|
end
|
||||||
|
@ -362,7 +362,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
let(:instructeur) { create(:instructeur) }
|
let(:instructeur) { create(:instructeur) }
|
||||||
before { procedure_non_routee.groupe_instructeurs.first.add_instructeurs(emails: [instructeur.user.email]) }
|
before { procedure_non_routee.groupe_instructeurs.first.add_instructeurs(emails: [instructeur.user.email]) }
|
||||||
let(:emails) { [instructeur.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
|
end
|
||||||
|
|
||||||
context 'when signed in admin comes from manager' do
|
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
|
it 'validates changes and responses' do
|
||||||
expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails)
|
expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails)
|
||||||
expect(flash.notice).to be_present
|
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(procedure.routing_enabled?).to be_truthy
|
||||||
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
|
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
|
||||||
gi_1_2,
|
gi_1_2,
|
||||||
|
@ -442,7 +442,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
context 'of an instructeur already in the group' do
|
context 'of an instructeur already in the group' do
|
||||||
let(:new_instructeur_emails) { [instructeur.email] }
|
let(:new_instructeur_emails) { [instructeur.email] }
|
||||||
before { do_request }
|
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
|
end
|
||||||
|
|
||||||
context 'of badly formed email' do
|
context 'of badly formed email' do
|
||||||
|
@ -450,14 +453,17 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
before { do_request }
|
before { do_request }
|
||||||
it do
|
it do
|
||||||
expect(flash.alert).to be_present
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'of an empty string' do
|
context 'of an empty string' do
|
||||||
let(:new_instructeur_emails) { [''] }
|
let(:new_instructeur_emails) { [''] }
|
||||||
before { do_request }
|
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
|
end
|
||||||
|
|
||||||
context 'when connected as an administrateur from manager' do
|
context 'when connected as an administrateur from manager' do
|
||||||
|
|
Loading…
Reference in a new issue