diff --git a/app/controllers/administrateurs/groupe_instructeurs_controller.rb b/app/controllers/administrateurs/groupe_instructeurs_controller.rb index a410afef8..0a1321ee2 100644 --- a/app/controllers/administrateurs/groupe_instructeurs_controller.rb +++ b/app/controllers/administrateurs/groupe_instructeurs_controller.rb @@ -230,8 +230,13 @@ module Administrateurs 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")}" else - result = InstructeursImportService.import_instructeurs(procedure, instructors_emails) - flash_message_for_import(result) + added_instructeurs, invalid_emails = InstructeursImportService.import_instructeurs(procedure, instructors_emails) + + GroupeInstructeurMailer + .notify_added_instructeurs(groupe_instructeur, added_instructeurs, current_administrateur.email) + .deliver_later + + flash_message_for_import(invalid_emails) end end redirect_to admin_procedure_groupe_instructeurs_path(procedure) diff --git a/app/services/instructeurs_import_service.rb b/app/services/instructeurs_import_service.rb index eb471fa5b..fdaac0f98 100644 --- a/app/services/instructeurs_import_service.rb +++ b/app/services/instructeurs_import_service.rb @@ -45,8 +45,8 @@ class InstructeursImportService 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 diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb index b785ce4c7..cfbdcd788 100644 --- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb @@ -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 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(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 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 context 'when the csv file has more than one column' do