feat(instructeurs import): notify added instructeurs
This commit is contained in:
parent
d516d2a3eb
commit
a6e01d98ea
3 changed files with 21 additions and 5 deletions
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue