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