From cc6d781c22e0c82892044793d387e459f9528b5b Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 24 Feb 2023 08:36:06 +0100 Subject: [PATCH 1/3] Add tests that emails are send for denied and deleted contributions. --- .../resolver/ContributionResolver.test.ts | 36 ++++++++++++++++--- .../graphql/resolver/ContributionResolver.ts | 2 +- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index 40da5339b..477bf0a99 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -25,7 +25,11 @@ import { listContributions, adminListAllContributions, } from '@/seeds/graphql/queries' -import { sendContributionConfirmedEmail } from '@/emails/sendEmailVariants' +import { + sendContributionConfirmedEmail, + sendContributionDeletedEmail, + sendContributionDeniedEmail, +} from '@/emails/sendEmailVariants' import { cleanDB, resetToken, @@ -57,13 +61,11 @@ jest.mock('@/emails/sendEmailVariants', () => { return { __esModule: true, ...originalModule, - // TODO: test the call of … - // sendAccountActivationEmail: jest.fn((a) => originalModule.sendAccountActivationEmail(a)), sendContributionConfirmedEmail: jest.fn((a) => originalModule.sendContributionConfirmedEmail(a), ), - // TODO: test the call of … - // sendContributionRejectedEmail: jest.fn((a) => originalModule.sendContributionRejectedEmail(a)), + sendContributionDeletedEmail: jest.fn((a) => originalModule.sendContributionDeletedEmail(a)), + sendContributionDeniedEmail: jest.fn((a) => originalModule.sendContributionDeniedEmail(a)), } }) @@ -830,6 +832,18 @@ describe('ContributionResolver', () => { }), ) }) + + it('calls sendContributionDeniedEmail', async () => { + expect(sendContributionDeniedEmail).toBeCalledWith({ + firstName: 'Bibi', + lastName: 'Bloxberg', + email: 'bibi@bloxberg.de', + language: 'de', + senderFirstName: 'Peter', + senderLastName: 'Lustig', + contributionMemo: 'Test contribution to deny', + }) + }) }) }) }) @@ -2461,6 +2475,18 @@ describe('ContributionResolver', () => { }), ) }) + + it('calls sendContributionDeletedEmail', async () => { + expect(sendContributionDeletedEmail).toBeCalledWith({ + firstName: 'Peter', + lastName: 'Lustig', + email: 'peter@lustig.de', + language: 'de', + senderFirstName: 'Peter', + senderLastName: 'Lustig', + contributionMemo: 'Das war leider zu Viel!', + }) + }) }) describe('creation already confirmed', () => { diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 36ed2c089..2726dd2cf 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -466,7 +466,7 @@ export class ContributionResolver { await EVENT_ADMIN_CONTRIBUTION_DELETE(contribution.userId, contribution.id, contribution.amount) - sendContributionDeletedEmail({ + await sendContributionDeletedEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email, From 3a6b701d3b9a92eff21e3628ba022170e700dcbd Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 1 Mar 2023 05:16:37 +0100 Subject: [PATCH 2/3] Reduce mock of emails sendEmailVariant. --- .../graphql/resolver/ContributionResolver.test.ts | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index 477bf0a99..054e54c28 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -55,19 +55,7 @@ import { ContributionListResult } from '@model/Contribution' import { ContributionStatus } from '@enum/ContributionStatus' import { Order } from '@enum/Order' -// mock account activation email to avoid console spam -jest.mock('@/emails/sendEmailVariants', () => { - const originalModule = jest.requireActual('@/emails/sendEmailVariants') - return { - __esModule: true, - ...originalModule, - sendContributionConfirmedEmail: jest.fn((a) => - originalModule.sendContributionConfirmedEmail(a), - ), - sendContributionDeletedEmail: jest.fn((a) => originalModule.sendContributionDeletedEmail(a)), - sendContributionDeniedEmail: jest.fn((a) => originalModule.sendContributionDeniedEmail(a)), - } -}) +jest.mock('@/emails/sendEmailVariants') let mutate: any, query: any, con: any let testEnv: any From becd9e44eaab6e59f7a92a7319456ca61c6312d7 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 1 Mar 2023 05:20:25 +0100 Subject: [PATCH 3/3] Remove await before sendContributionDeletedEmail --- backend/src/graphql/resolver/ContributionResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 2726dd2cf..36ed2c089 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -466,7 +466,7 @@ export class ContributionResolver { await EVENT_ADMIN_CONTRIBUTION_DELETE(contribution.userId, contribution.id, contribution.amount) - await sendContributionDeletedEmail({ + sendContributionDeletedEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email,