feat(GroupeInstructeurAjouterInstructeurs): add notification for added instructeurs via API

This commit is contained in:
Eric Leroy-Terquem 2023-02-20 17:28:23 +01:00
parent b2f3a7af4c
commit ac0d7a67a1
2 changed files with 16 additions and 1 deletions

View file

@ -13,7 +13,12 @@ module Mutations
ids, emails = partition_instructeurs_by(instructeurs) ids, emails = partition_instructeurs_by(instructeurs)
_, invalid_emails = groupe_instructeur.add_instructeurs(ids:, emails:) _, invalid_emails = groupe_instructeur.add_instructeurs(ids:, emails:)
groupe_instructeur.reload if instructeurs.present?
groupe_instructeur.reload
GroupeInstructeurMailer
.notify_added_instructeurs(groupe_instructeur, instructeurs, current_administrateur.email)
.deliver_later
end
result = { groupe_instructeur: } result = { groupe_instructeur: }

View file

@ -360,6 +360,11 @@ describe API::V2::GraphqlController do
let(:variables) { { input: { groupeInstructeurId: groupe_instructeur.to_typed_id, instructeurs: [{ email: }, { email: 'yolo' }, { id: existing_instructeur.to_typed_id }] }, includeInstructeurs: true } } let(:variables) { { input: { groupeInstructeurId: groupe_instructeur.to_typed_id, instructeurs: [{ email: }, { email: 'yolo' }, { id: existing_instructeur.to_typed_id }] }, includeInstructeurs: true } }
let(:operation_name) { 'groupeInstructeurAjouterInstructeurs' } let(:operation_name) { 'groupeInstructeurAjouterInstructeurs' }
before do
allow(GroupeInstructeurMailer).to receive(:notify_added_instructeurs)
.and_return(double(deliver_later: true))
end
it { it {
expect(gql_errors).to be_nil expect(gql_errors).to be_nil
expect(gql_data[:groupeInstructeurAjouterInstructeurs][:errors]).to be_nil expect(gql_data[:groupeInstructeurAjouterInstructeurs][:errors]).to be_nil
@ -367,6 +372,11 @@ describe API::V2::GraphqlController do
expect(gql_data[:groupeInstructeurAjouterInstructeurs][:groupeInstructeur][:id]).to eq(groupe_instructeur.to_typed_id) expect(gql_data[:groupeInstructeurAjouterInstructeurs][:groupeInstructeur][:id]).to eq(groupe_instructeur.to_typed_id)
expect(groupe_instructeur.instructeurs.count).to eq(2) expect(groupe_instructeur.instructeurs.count).to eq(2)
expect(gql_data[:groupeInstructeurAjouterInstructeurs][:groupeInstructeur][:instructeurs]).to eq([{ id: existing_instructeur.to_typed_id, email: existing_instructeur.email }, { id: Instructeur.last.to_typed_id, email: }]) expect(gql_data[:groupeInstructeurAjouterInstructeurs][:groupeInstructeur][:instructeurs]).to eq([{ id: existing_instructeur.to_typed_id, email: existing_instructeur.email }, { id: Instructeur.last.to_typed_id, email: }])
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
groupe_instructeur,
[Instructeur.last],
admin.email
)
} }
end end