feat(GroupeInstructeurSupprimerInstructeurs): add notification for removed instructeurs via API
This commit is contained in:
parent
ac0d7a67a1
commit
a150aa33ef
2 changed files with 16 additions and 5 deletions
|
@ -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: }
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue