[#10751] Only send the first invitation mail to the instructeur if email is not verified (from admin controller)

This commit is contained in:
Mathieu Magnin 2024-09-10 17:41:55 +02:00
parent d7811fca40
commit 790177c758
No known key found for this signature in database
GPG key ID: 8DCAFC82D7BA654E
2 changed files with 13 additions and 3 deletions

View file

@ -252,9 +252,11 @@ module Administrateurs
"Les instructeurs ont bien été affectés à la démarche"
end
known_instructeurs, new_instructeurs = instructeurs.partition { |instructeur| instructeur.user.email_verified_at }
known_instructeurs, not_verified_instructeurs = instructeurs.partition { |instructeur| instructeur.user.email_verified_at }
new_instructeurs.each { InstructeurMailer.confirm_and_notify_added_instructeur(_1, groupe_instructeur, current_administrateur.email).deliver_later }
not_verified_instructeurs.filter(&:previously_new_record?).each do
InstructeurMailer.confirm_and_notify_added_instructeur(_1, groupe_instructeur, current_administrateur.email).deliver_later
end
if known_instructeurs.present?
GroupeInstructeurMailer

View file

@ -387,7 +387,8 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
context 'of news instructeurs' do
let!(:user_email_verified) { create(:user, :with_email_verified) }
let!(:instructeur_email_verified) { create(:instructeur, user: user_email_verified) }
let(:new_instructeur_emails) { ['new_i1@gmail.com', 'new_i2@gmail.com', instructeur_email_verified.email] }
let!(:instructeur_email_not_verified) { create(:instructeur, user: create(:user)) }
let(:new_instructeur_emails) { ['new_i1@gmail.com', 'new_i2@gmail.com', instructeur_email_verified.email, instructeur_email_not_verified.email] }
before do
allow(GroupeInstructeurMailer).to receive(:notify_added_instructeurs)
@ -397,6 +398,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
.and_return(double(deliver_later: true))
do_request
end
it 'validates changes and responses' do
expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails)
expect(flash.notice).to be_present
@ -421,6 +423,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
gi_1_2,
admin.email
)
expect(InstructeurMailer).not_to have_received(:confirm_and_notify_added_instructeur).with(
instructeur_email_not_verified,
gi_1_2,
admin.email
)
end
end