feat(GroupeInstructeurSupprimerInstructeurs): add notification for removed instructeurs via API

This commit is contained in:
Eric Leroy-Terquem 2023-02-20 17:48:56 +01:00
parent ac0d7a67a1
commit a150aa33ef
2 changed files with 16 additions and 5 deletions

View file

@ -19,6 +19,12 @@ module Mutations
GroupeInstructeurMailer
.notify_group_when_instructeurs_removed(groupe_instructeur, instructeurs, current_administrateur.email)
.deliver_later
instructeurs.each do |instructeur|
GroupeInstructeurMailer
.notify_removed_instructeur(groupe_instructeur, instructeur, current_administrateur.email)
.deliver_later
end
end
{ groupe_instructeur: }

View file

@ -384,19 +384,23 @@ describe API::V2::GraphqlController do
let(:email) { 'test@test.com' }
let(:groupe_instructeur) { procedure.groupe_instructeurs.first }
let(:existing_instructeur) { groupe_instructeur.instructeurs.first }
let(:new_instructeur) { create(:instructeur) }
let(:variables) { { input: { groupeInstructeurId: groupe_instructeur.to_typed_id, instructeurs: [{ email: }, { id: new_instructeur.to_typed_id }] }, includeInstructeurs: true } }
let(:instructeur_2) { create(:instructeur) }
let(:instructeur_3) { create(:instructeur) }
let(:variables) { { input: { groupeInstructeurId: groupe_instructeur.to_typed_id, instructeurs: [{ email: }, { id: instructeur_2.to_typed_id }, { id: instructeur_3.to_typed_id }] }, includeInstructeurs: true } }
let(:operation_name) { 'groupeInstructeurSupprimerInstructeurs' }
before do
allow(GroupeInstructeurMailer).to receive(:notify_group_when_instructeurs_removed)
.and_return(double(deliver_later: true))
allow(GroupeInstructeurMailer).to receive(:notify_removed_instructeur)
.and_return(double(deliver_later: true))
existing_instructeur
groupe_instructeur.add(new_instructeur)
groupe_instructeur.add(instructeur_2)
groupe_instructeur.add(instructeur_3)
end
it {
expect(groupe_instructeur.reload.instructeurs.count).to eq(2)
expect(groupe_instructeur.reload.instructeurs.count).to eq(3)
expect(gql_errors).to be_nil
expect(gql_data[:groupeInstructeurSupprimerInstructeurs][:errors]).to be_nil
expect(gql_data[:groupeInstructeurSupprimerInstructeurs][:groupeInstructeur][:id]).to eq(groupe_instructeur.to_typed_id)
@ -404,9 +408,10 @@ describe API::V2::GraphqlController do
expect(gql_data[:groupeInstructeurSupprimerInstructeurs][:groupeInstructeur][:instructeurs]).to eq([{ id: existing_instructeur.to_typed_id, email: existing_instructeur.email }])
expect(GroupeInstructeurMailer).to have_received(:notify_group_when_instructeurs_removed).with(
groupe_instructeur,
[new_instructeur],
[instructeur_2, instructeur_3],
admin.email
)
expect(GroupeInstructeurMailer).to have_received(:notify_removed_instructeur).twice
}
end