fix(groupe instructeur mailer): do not notify if no added instructeurs
This commit is contained in:
parent
f317f28ff5
commit
9e0753a710
4 changed files with 47 additions and 11 deletions
|
@ -212,10 +212,11 @@ module Administrateurs
|
|||
added_instructeurs_by_group, invalid_emails = InstructeursImportService.import_groupes(procedure, groupes_emails)
|
||||
|
||||
added_instructeurs_by_group.each do |groupe, added_instructeurs|
|
||||
GroupeInstructeurMailer
|
||||
.notify_added_instructeurs(groupe, added_instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
|
||||
if added_instructeurs.present?
|
||||
GroupeInstructeurMailer
|
||||
.notify_added_instructeurs(groupe, added_instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
end
|
||||
flash_message_for_import(invalid_emails)
|
||||
end
|
||||
|
||||
|
@ -223,11 +224,11 @@ module Administrateurs
|
|||
instructors_emails = csv_content.map(&:to_h)
|
||||
|
||||
added_instructeurs, invalid_emails = InstructeursImportService.import_instructeurs(procedure, instructors_emails)
|
||||
|
||||
GroupeInstructeurMailer
|
||||
.notify_added_instructeurs(groupe_instructeur, added_instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
|
||||
if added_instructeurs.present?
|
||||
GroupeInstructeurMailer
|
||||
.notify_added_instructeurs(groupe_instructeur, added_instructeurs, current_administrateur.email)
|
||||
.deliver_later
|
||||
end
|
||||
flash_message_for_import(invalid_emails)
|
||||
else
|
||||
flash_message_for_invalid_csv
|
||||
|
|
|
@ -414,7 +414,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
it { expect { subject }.not_to raise_error }
|
||||
it { expect(response.status).to eq(302) }
|
||||
it { expect(flash.alert).to be_present }
|
||||
it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant <a href=\"/csv/import-instructeurs-test.csv\">ce modèle</a> pour une procédure classique ou <a href=\"/csv/fr/import-groupe-test.csv\">celui-ci</a> pour une procédure routée") }
|
||||
it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant <a href=\"/csv/import-instructeurs-test.csv\">ce modèle</a> pour une procédure sans routage ou <a href=\"/csv/fr/import-groupe-test.csv\">celui-ci</a> pour une procédure routée") }
|
||||
end
|
||||
|
||||
context 'when the file content type is application/vnd.ms-excel' do
|
||||
|
@ -468,7 +468,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
before { subject }
|
||||
|
||||
it { expect(flash.alert).to be_present }
|
||||
it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant <a href=\"/csv/import-instructeurs-test.csv\">ce modèle</a> pour une procédure classique ou <a href=\"/csv/fr/import-groupe-test.csv\">celui-ci</a> pour une procédure routée") }
|
||||
it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant <a href=\"/csv/import-instructeurs-test.csv\">ce modèle</a> pour une procédure sans routage ou <a href=\"/csv/fr/import-groupe-test.csv\">celui-ci</a> pour une procédure routée") }
|
||||
end
|
||||
|
||||
context 'when procedure is closed' do
|
||||
|
@ -480,6 +480,20 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
it { expect(procedure.groupe_instructeurs.first.label).to eq("Afrique") }
|
||||
it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara") }
|
||||
end
|
||||
|
||||
context 'when emails are invalid' do
|
||||
let(:procedure) { create(:procedure, :closed, administrateurs: [admin]) }
|
||||
let(:csv_file) { fixture_file_upload('spec/fixtures/files/groupe-instructeur-emails-invalides.csv', 'text/csv') }
|
||||
|
||||
before do
|
||||
allow(GroupeInstructeurMailer).to receive(:notify_added_instructeurs)
|
||||
.and_return(double(deliver_later: true))
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:") }
|
||||
it { expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'unrouted procedures' do
|
||||
|
@ -551,6 +565,19 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
|||
it { expect(flash.alert).to be_present }
|
||||
it { expect(flash.alert).to eq("Importation impossible : veuillez importer un fichier CSV") }
|
||||
end
|
||||
|
||||
context 'when emails are invalid' do
|
||||
let(:csv_file) { fixture_file_upload('spec/fixtures/files/instructeurs-emails-invalides.csv', 'text/csv') }
|
||||
|
||||
before do
|
||||
allow(GroupeInstructeurMailer).to receive(:notify_added_instructeurs)
|
||||
.and_return(double(deliver_later: true))
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:") }
|
||||
it { expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
4
spec/fixtures/files/groupe-instructeur-emails-invalides.csv
vendored
Normal file
4
spec/fixtures/files/groupe-instructeur-emails-invalides.csv
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
Email,Groupe
|
||||
instructeur1, Paris
|
||||
instructeur2,Paris
|
||||
instructeur3,Marseille
|
|
4
spec/fixtures/files/instructeurs-emails-invalides.csv
vendored
Normal file
4
spec/fixtures/files/instructeurs-emails-invalides.csv
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
Email
|
||||
instructeur1.test
|
||||
instructeur2
|
||||
instructeur3
|
|
Loading…
Reference in a new issue