feat(instructeurs import): notify added instructeurs

This commit is contained in:
Eric Leroy-Terquem 2023-02-22 17:29:07 +01:00
parent d516d2a3eb
commit a6e01d98ea
3 changed files with 21 additions and 5 deletions

View file

@ -230,8 +230,13 @@ module Administrateurs
if instructors_emails_has_key.blank? if instructors_emails_has_key.blank?
flash[:alert] = "Importation impossible, veuillez importer un csv #{view_context.link_to('suivant ce modèle', "/csv/import-instructeurs-test.csv")}" flash[:alert] = "Importation impossible, veuillez importer un csv #{view_context.link_to('suivant ce modèle', "/csv/import-instructeurs-test.csv")}"
else else
result = InstructeursImportService.import_instructeurs(procedure, instructors_emails) added_instructeurs, invalid_emails = InstructeursImportService.import_instructeurs(procedure, instructors_emails)
flash_message_for_import(result)
GroupeInstructeurMailer
.notify_added_instructeurs(groupe_instructeur, added_instructeurs, current_administrateur.email)
.deliver_later
flash_message_for_import(invalid_emails)
end end
end end
redirect_to admin_procedure_groupe_instructeurs_path(procedure) redirect_to admin_procedure_groupe_instructeurs_path(procedure)

View file

@ -45,8 +45,8 @@ class InstructeursImportService
groupe_instructeur = procedure.defaut_groupe_instructeur groupe_instructeur = procedure.defaut_groupe_instructeur
_, invalid_emails = groupe_instructeur.add_instructeurs(emails: instructeurs_emails) instructeurs, invalid_emails = groupe_instructeur.add_instructeurs(emails: instructeurs_emails)
invalid_emails [instructeurs, invalid_emails]
end end
end end

View file

@ -486,12 +486,23 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
context 'when the csv file is less than 1 mo and content type text/csv' do context 'when the csv file is less than 1 mo and content type text/csv' do
let(:csv_file) { fixture_file_upload('spec/fixtures/files/instructeurs-file.csv', 'text/csv') } let(:csv_file) { fixture_file_upload('spec/fixtures/files/instructeurs-file.csv', 'text/csv') }
before { subject } before do
allow(GroupeInstructeurMailer).to receive(:notify_added_instructeurs)
.and_return(double(deliver_later: true))
subject
end
it { expect(response.status).to eq(302) } it { expect(response.status).to eq(302) }
it { expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"]) } it { expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"]) }
it { expect(flash.alert).to be_present } it { expect(flash.alert).to be_present }
it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: eric") } it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: eric") }
it "calls GroupeInstructeurMailer" do
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
procedure_non_routee.defaut_groupe_instructeur,
any_args,
admin.email
)
end
end end
context 'when the csv file has more than one column' do context 'when the csv file has more than one column' do