From d08b609088e8f7278cdd4c3dbf172b881ac289ff Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 07:40:48 +0200 Subject: [PATCH 01/17] Define the german text for the email addedContributionMessage. --- .../text/contributionMessageReceived.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 backend/src/mailer/text/contributionMessageReceived.ts diff --git a/backend/src/mailer/text/contributionMessageReceived.ts b/backend/src/mailer/text/contributionMessageReceived.ts new file mode 100644 index 000000000..ca0d68d3d --- /dev/null +++ b/backend/src/mailer/text/contributionMessageReceived.ts @@ -0,0 +1,30 @@ +export const contributionMessageReceived = { + de: { + subject: 'Gradido Frage zur Schöpfung', + text: (data: { + senderFirstName: string + senderLastName: string + recipientFirstName: string + recipientLastName: string + recipientEmail: string + senderEmail: string + contributionMemo: string + message: string + overviewURL: string + }): string => + `Hallo ${data.recipientFirstName} ${data.recipientLastName} + +Du hast soeben eine nachfrage zur Schöpfung "${data.contributionMemo}" von ${data.senderFirstName} ${data.senderLastName} (${data.senderEmail}) erhalten. +${data.senderFirstName} ${data.senderLastName} schreibt: + +${data.message} + +Bitte antworte nicht auf diese E-Mail! + +Mit freundlichen Grüßen, +dein Gradido-Team + + +Link zu deinem Konto: ${data.overviewURL}`, + }, +} From d2ff8991001e97cf12e99043edca787be8e0f91b Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 07:41:45 +0200 Subject: [PATCH 02/17] Add method for sending EMail when their is a new contributionMessage from admin. --- .../mailer/sendTransactionReceivedEmail.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/backend/src/mailer/sendTransactionReceivedEmail.ts b/backend/src/mailer/sendTransactionReceivedEmail.ts index 692f92f9a..d1c79133e 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.ts @@ -2,6 +2,7 @@ import { backendLogger as logger } from '@/server/logger' import Decimal from 'decimal.js-light' import { sendEMail } from './sendEMail' import { transactionReceived } from './text/transactionReceived' +import { contributionMessageReceived } from './text/contributionMessageReceived' export const sendTransactionReceivedEmail = (data: { senderFirstName: string @@ -26,3 +27,26 @@ export const sendTransactionReceivedEmail = (data: { text: transactionReceived.de.text(data), }) } + +export const sendAddedContributionMessageEmail = (data: { + senderFirstName: string + senderLastName: string + recipientFirstName: string + recipientLastName: string + recipientEmail: string + senderEmail: string + contributionMemo: string + message: string + overviewURL: string +}): Promise => { + logger.info( + `sendEmail(): to=${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>, + subject=${contributionMessageReceived.de.subject}, + text=${contributionMessageReceived.de.text(data)}`, + ) + return sendEMail({ + to: `${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>`, + subject: contributionMessageReceived.de.subject, + text: contributionMessageReceived.de.text(data), + }) +} From d73143cfdf6f5097c57704d263f4c776508b6761 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 07:42:27 +0200 Subject: [PATCH 03/17] Call method to send Email when an admin add a new contributionmessage. --- backend/src/graphql/resolver/AdminResolver.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index ac3936e4f..388083fd3 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -66,6 +66,7 @@ import { ContributionMessage as DbContributionMessage } from '@entity/Contributi import ContributionMessageArgs from '@arg/ContributionMessageArgs' import { ContributionMessageType } from '@enum/MessageType' import { ContributionMessage } from '@model/ContributionMessage' +import { sendAddedContributionMessageEmail } from '@/mailer/sendTransactionReceivedEmail' // const EMAIL_OPT_IN_REGISTER = 1 // const EMAIL_OPT_UNKNOWN = 3 // elopage? @@ -737,6 +738,20 @@ export class AdminResolver { await queryRunner.manager.update(Contribution, { id: contributionId }, contribution) } await queryRunner.commitTransaction() + const contributionUser = await dbUser.findOne({ id: contribution.userId }) + if (contributionUser) { + await sendAddedContributionMessageEmail({ + senderFirstName: user.firstName, + senderLastName: user.lastName, + recipientFirstName: contributionUser.firstName, + recipientLastName: contributionUser.lastName, + recipientEmail: contributionUser.email, + senderEmail: user.email, + contribution.memo, + message, + overviewURL: CONFIG.EMAIL_LINK_OVERVIEW, + }) + } } catch (e) { await queryRunner.rollbackTransaction() logger.error(`ContributionMessage was not successful: ${e}`) From 690b18c307b76b1e16e46ada33546e7293e31182 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 07:49:11 +0200 Subject: [PATCH 04/17] Remove email of admin who sends message. --- backend/src/mailer/text/contributionMessageReceived.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/mailer/text/contributionMessageReceived.ts b/backend/src/mailer/text/contributionMessageReceived.ts index ca0d68d3d..e0a19d7dc 100644 --- a/backend/src/mailer/text/contributionMessageReceived.ts +++ b/backend/src/mailer/text/contributionMessageReceived.ts @@ -14,7 +14,7 @@ export const contributionMessageReceived = { }): string => `Hallo ${data.recipientFirstName} ${data.recipientLastName} -Du hast soeben eine nachfrage zur Schöpfung "${data.contributionMemo}" von ${data.senderFirstName} ${data.senderLastName} (${data.senderEmail}) erhalten. +Du hast soeben eine nachfrage zur Schöpfung "${data.contributionMemo}" von ${data.senderFirstName} ${data.senderLastName} erhalten. ${data.senderFirstName} ${data.senderLastName} schreibt: ${data.message} From 663097c378617e2957cf71a80c4e0c600de88d74 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 07:52:04 +0200 Subject: [PATCH 05/17] Fix data with named contributionMemo instead. --- backend/src/graphql/resolver/AdminResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 388083fd3..34b0f5ccf 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -747,7 +747,7 @@ export class AdminResolver { recipientLastName: contributionUser.lastName, recipientEmail: contributionUser.email, senderEmail: user.email, - contribution.memo, + contributionMemo: contribution.memo, message, overviewURL: CONFIG.EMAIL_LINK_OVERVIEW, }) From 032348f8c27e9480ab774082f3b8f7c366a43abd Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 09:19:49 +0200 Subject: [PATCH 06/17] Remove addedContributionMessageEmail from this file. --- .../sendTransactionReceivedEmail.test.ts | 35 ++++++++++++++++++- .../mailer/sendTransactionReceivedEmail.ts | 23 ------------ 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/backend/src/mailer/sendTransactionReceivedEmail.test.ts b/backend/src/mailer/sendTransactionReceivedEmail.test.ts index 75631cc7a..18d917cc6 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.test.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.test.ts @@ -1,4 +1,7 @@ -import { sendTransactionReceivedEmail } from './sendTransactionReceivedEmail' +import { + sendAddedContributionMessageEmail, + sendTransactionReceivedEmail, +} from './sendTransactionReceivedEmail' import { sendEMail } from './sendEMail' import Decimal from 'decimal.js-light' @@ -38,3 +41,33 @@ describe('sendTransactionReceivedEmail', () => { }) }) }) + +describe('sendAddedContributionMessageEmail', () => { + beforeEach(async () => { + jest.clearAllMocks() + await sendAddedContributionMessageEmail({ + senderFirstName: 'Peter', + senderLastName: 'Lustig', + recipientFirstName: 'Bibi', + recipientLastName: 'Bloxberg', + recipientEmail: 'bibi@bloxberg.de', + senderEmail: 'peter@lustig.de', + contributionMemo: 'Vielen herzlichen Dank für den neuen Hexenbesen!', + message: 'Was für ein Besen ist es geworden?', + overviewURL: 'http://localhost/overview', + }) + }) + + it('calls sendEMail', () => { + expect(sendEMail).toBeCalledWith({ + to: `Bibi Bloxberg `, + subject: 'Gradido Frage zur Schöpfung', + text: + expect.stringContaining('Hallo Bibi Bloxberg') && + expect.stringContaining('Peter Lustig') && + expect.stringContaining('Vielen herzlichen Dank für den neuen Hexenbesen!') && + expect.stringContaining('Was für ein Besen ist es geworden?') && + expect.stringContaining('http://localhost/overview'), + }) + }) +}) diff --git a/backend/src/mailer/sendTransactionReceivedEmail.ts b/backend/src/mailer/sendTransactionReceivedEmail.ts index d1c79133e..3e5171251 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.ts @@ -27,26 +27,3 @@ export const sendTransactionReceivedEmail = (data: { text: transactionReceived.de.text(data), }) } - -export const sendAddedContributionMessageEmail = (data: { - senderFirstName: string - senderLastName: string - recipientFirstName: string - recipientLastName: string - recipientEmail: string - senderEmail: string - contributionMemo: string - message: string - overviewURL: string -}): Promise => { - logger.info( - `sendEmail(): to=${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>, - subject=${contributionMessageReceived.de.subject}, - text=${contributionMessageReceived.de.text(data)}`, - ) - return sendEMail({ - to: `${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>`, - subject: contributionMessageReceived.de.subject, - text: contributionMessageReceived.de.text(data), - }) -} From d49d5f6bb7bcb271a38888a98548bcac6755f3c3 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 09:20:14 +0200 Subject: [PATCH 07/17] Remove addedContributionMessageEmail test from this file. --- .../sendTransactionReceivedEmail.test.ts | 35 +------------------ 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/backend/src/mailer/sendTransactionReceivedEmail.test.ts b/backend/src/mailer/sendTransactionReceivedEmail.test.ts index 18d917cc6..75631cc7a 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.test.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.test.ts @@ -1,7 +1,4 @@ -import { - sendAddedContributionMessageEmail, - sendTransactionReceivedEmail, -} from './sendTransactionReceivedEmail' +import { sendTransactionReceivedEmail } from './sendTransactionReceivedEmail' import { sendEMail } from './sendEMail' import Decimal from 'decimal.js-light' @@ -41,33 +38,3 @@ describe('sendTransactionReceivedEmail', () => { }) }) }) - -describe('sendAddedContributionMessageEmail', () => { - beforeEach(async () => { - jest.clearAllMocks() - await sendAddedContributionMessageEmail({ - senderFirstName: 'Peter', - senderLastName: 'Lustig', - recipientFirstName: 'Bibi', - recipientLastName: 'Bloxberg', - recipientEmail: 'bibi@bloxberg.de', - senderEmail: 'peter@lustig.de', - contributionMemo: 'Vielen herzlichen Dank für den neuen Hexenbesen!', - message: 'Was für ein Besen ist es geworden?', - overviewURL: 'http://localhost/overview', - }) - }) - - it('calls sendEMail', () => { - expect(sendEMail).toBeCalledWith({ - to: `Bibi Bloxberg `, - subject: 'Gradido Frage zur Schöpfung', - text: - expect.stringContaining('Hallo Bibi Bloxberg') && - expect.stringContaining('Peter Lustig') && - expect.stringContaining('Vielen herzlichen Dank für den neuen Hexenbesen!') && - expect.stringContaining('Was für ein Besen ist es geworden?') && - expect.stringContaining('http://localhost/overview'), - }) - }) -}) From 5aea6f9d9debae25660f7505128bc27f199f6b49 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 09:20:34 +0200 Subject: [PATCH 08/17] Move sendAddedContributionMessageEmail to new file. --- .../sendAddedContributionMessageEmail.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 backend/src/mailer/sendAddedContributionMessageEmail.ts diff --git a/backend/src/mailer/sendAddedContributionMessageEmail.ts b/backend/src/mailer/sendAddedContributionMessageEmail.ts new file mode 100644 index 000000000..14d5f6d31 --- /dev/null +++ b/backend/src/mailer/sendAddedContributionMessageEmail.ts @@ -0,0 +1,26 @@ +import { backendLogger as logger } from '@/server/logger' +import { sendEMail } from './sendEMail' +import { contributionMessageReceived } from './text/contributionMessageReceived' + +export const sendAddedContributionMessageEmail = (data: { + senderFirstName: string + senderLastName: string + recipientFirstName: string + recipientLastName: string + recipientEmail: string + senderEmail: string + contributionMemo: string + message: string + overviewURL: string +}): Promise => { + logger.info( + `sendEmail(): to=${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>, + subject=${contributionMessageReceived.de.subject}, + text=${contributionMessageReceived.de.text(data)}`, + ) + return sendEMail({ + to: `${data.recipientFirstName} ${data.recipientLastName} <${data.recipientEmail}>`, + subject: contributionMessageReceived.de.subject, + text: contributionMessageReceived.de.text(data), + }) +} From 2651a8afcac85b10389841ccf368a70d177151b4 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 09:20:56 +0200 Subject: [PATCH 09/17] Move test for sendAddedContributionMessageEmail. --- .../sendAddedContributionMessageEmail.test.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 backend/src/mailer/sendAddedContributionMessageEmail.test.ts diff --git a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts new file mode 100644 index 000000000..8b1bc2727 --- /dev/null +++ b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts @@ -0,0 +1,31 @@ +import { sendAddedContributionMessageEmail } from './sendAddedContributionMessageEmail' +import { sendEMail } from './sendEMail' + +describe('sendAddedContributionMessageEmail', () => { + beforeEach(async () => { + await sendAddedContributionMessageEmail({ + senderFirstName: 'Peter', + senderLastName: 'Lustig', + recipientFirstName: 'Bibi', + recipientLastName: 'Bloxberg', + recipientEmail: 'bibi@bloxberg.de', + senderEmail: 'peter@lustig.de', + contributionMemo: 'Vielen herzlichen Dank für den neuen Hexenbesen!', + message: 'Was für ein Besen ist es geworden?', + overviewURL: 'http://localhost/overview', + }) + }) + + it('calls sendEMail', () => { + expect(sendEMail).toBeCalledWith({ + to: `Bibi Bloxberg `, + subject: 'Gradido Frage zur Schöpfung', + text: + expect.stringContaining('Hallo Bibi Bloxberg') && + expect.stringContaining('Peter Lustig') && + expect.stringContaining('Vielen herzlichen Dank für den neuen Hexenbesen!') && + expect.stringContaining('Was für ein Besen ist es geworden?') && + expect.stringContaining('http://localhost/overview'), + }) + }) +}) From 655e4058660ee42d878cbe312245dd38018ed59a Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 14:43:30 +0200 Subject: [PATCH 10/17] Change text of email. --- backend/src/mailer/text/contributionMessageReceived.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/mailer/text/contributionMessageReceived.ts b/backend/src/mailer/text/contributionMessageReceived.ts index e0a19d7dc..4affb71a8 100644 --- a/backend/src/mailer/text/contributionMessageReceived.ts +++ b/backend/src/mailer/text/contributionMessageReceived.ts @@ -12,10 +12,10 @@ export const contributionMessageReceived = { message: string overviewURL: string }): string => - `Hallo ${data.recipientFirstName} ${data.recipientLastName} + `Hallo ${data.recipientFirstName} ${data.recipientLastName}, -Du hast soeben eine nachfrage zur Schöpfung "${data.contributionMemo}" von ${data.senderFirstName} ${data.senderLastName} erhalten. -${data.senderFirstName} ${data.senderLastName} schreibt: +Du hast soeben zu deinem eingereichten Gradido Schöpfungsantrag "${data.contributionMemo}" eine Rückfrage von ${data.senderFirstName} ${data.senderLastName} erhalten. +Die Rückfrage lautet: ${data.message} From 93e7684eda56f1ac42b22ea1fb08b2abce87af52 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 14:44:00 +0200 Subject: [PATCH 11/17] Change import to the new file. --- backend/src/graphql/resolver/AdminResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 34b0f5ccf..a1c091283 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -66,7 +66,7 @@ import { ContributionMessage as DbContributionMessage } from '@entity/Contributi import ContributionMessageArgs from '@arg/ContributionMessageArgs' import { ContributionMessageType } from '@enum/MessageType' import { ContributionMessage } from '@model/ContributionMessage' -import { sendAddedContributionMessageEmail } from '@/mailer/sendTransactionReceivedEmail' +import { sendAddedContributionMessageEmail } from '@/mailer/sendAddedContributionMessageEmail' // const EMAIL_OPT_IN_REGISTER = 1 // const EMAIL_OPT_UNKNOWN = 3 // elopage? From a3d65228f90c31ff87de16ce8fa4065000edfd96 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 14:44:22 +0200 Subject: [PATCH 12/17] Add sendEmail mock to the test file. --- .../src/mailer/sendAddedContributionMessageEmail.test.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts index 8b1bc2727..a35836e2a 100644 --- a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts +++ b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts @@ -1,6 +1,13 @@ import { sendAddedContributionMessageEmail } from './sendAddedContributionMessageEmail' import { sendEMail } from './sendEMail' +jest.mock('./sendEMail', () => { + return { + __esModule: true, + sendEMail: jest.fn(), + } +}) + describe('sendAddedContributionMessageEmail', () => { beforeEach(async () => { await sendAddedContributionMessageEmail({ From 42f667674ef4ecca73c48764023bb1812425ddd1 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 9 Sep 2022 14:54:37 +0200 Subject: [PATCH 13/17] Remove unused import. --- backend/src/mailer/sendTransactionReceivedEmail.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/mailer/sendTransactionReceivedEmail.ts b/backend/src/mailer/sendTransactionReceivedEmail.ts index 3e5171251..692f92f9a 100644 --- a/backend/src/mailer/sendTransactionReceivedEmail.ts +++ b/backend/src/mailer/sendTransactionReceivedEmail.ts @@ -2,7 +2,6 @@ import { backendLogger as logger } from '@/server/logger' import Decimal from 'decimal.js-light' import { sendEMail } from './sendEMail' import { transactionReceived } from './text/transactionReceived' -import { contributionMessageReceived } from './text/contributionMessageReceived' export const sendTransactionReceivedEmail = (data: { senderFirstName: string From a87667af02206293072ea7148b9d3a9ceff9dd5d Mon Sep 17 00:00:00 2001 From: Hannes Heine Date: Wed, 14 Sep 2022 08:34:41 +0200 Subject: [PATCH 14/17] Update backend/src/mailer/sendAddedContributionMessageEmail.test.ts Co-authored-by: Moriz Wahl --- backend/src/mailer/sendAddedContributionMessageEmail.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts index a35836e2a..d867fd55b 100644 --- a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts +++ b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts @@ -30,7 +30,7 @@ describe('sendAddedContributionMessageEmail', () => { text: expect.stringContaining('Hallo Bibi Bloxberg') && expect.stringContaining('Peter Lustig') && - expect.stringContaining('Vielen herzlichen Dank für den neuen Hexenbesen!') && + expect.stringContaining('Du hast soeben zu deinem eingereichten Gradido Schöpfungsantrag "Vielen herzlichen Dank für den neuen Hexenbesen!" eine Rückfrage von Peter Lustig erhalten.') && expect.stringContaining('Was für ein Besen ist es geworden?') && expect.stringContaining('http://localhost/overview'), }) From d65bd827ca87648975faa77c18a24cfb5be52860 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 14 Sep 2022 09:03:28 +0200 Subject: [PATCH 15/17] Change search to get the contribution.user instead of queriing it after wards. --- backend/src/graphql/resolver/AdminResolver.ts | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index a1c091283..9b9c1d8d1 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -714,7 +714,10 @@ export class AdminResolver { await queryRunner.startTransaction('READ UNCOMMITTED') const contributionMessage = DbContributionMessage.create() try { - const contribution = await Contribution.findOne({ id: contributionId }) + const contribution = await Contribution.findOne({ + where: { id: contributionId }, + relations: ['user'], + }) if (!contribution) { throw new Error('Contribution not found') } @@ -738,20 +741,18 @@ export class AdminResolver { await queryRunner.manager.update(Contribution, { id: contributionId }, contribution) } await queryRunner.commitTransaction() - const contributionUser = await dbUser.findOne({ id: contribution.userId }) - if (contributionUser) { - await sendAddedContributionMessageEmail({ - senderFirstName: user.firstName, - senderLastName: user.lastName, - recipientFirstName: contributionUser.firstName, - recipientLastName: contributionUser.lastName, - recipientEmail: contributionUser.email, - senderEmail: user.email, - contributionMemo: contribution.memo, - message, - overviewURL: CONFIG.EMAIL_LINK_OVERVIEW, - }) - } + + await sendAddedContributionMessageEmail({ + senderFirstName: user.firstName, + senderLastName: user.lastName, + recipientFirstName: contribution.user.firstName, + recipientLastName: contribution.user.lastName, + recipientEmail: contribution.user.email, + senderEmail: user.email, + contributionMemo: contribution.memo, + message, + overviewURL: CONFIG.EMAIL_LINK_OVERVIEW, + }) } catch (e) { await queryRunner.rollbackTransaction() logger.error(`ContributionMessage was not successful: ${e}`) From 0820d8d529e44e6a466bd33bb02215ec4a2f848b Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 14 Sep 2022 09:04:39 +0200 Subject: [PATCH 16/17] Tests that the method sendAddedContributionMessageEmail is called. --- .../ContributionMessageResolver.test.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts index c0e330750..40e9e2ace 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts @@ -12,6 +12,14 @@ import { listContributionMessages, login } from '@/seeds/graphql/queries' import { userFactory } from '@/seeds/factory/user' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { peterLustig } from '@/seeds/users/peter-lustig' +import { sendAddedContributionMessageEmail } from '@/mailer/sendAddedContributionMessageEmail' + +jest.mock('@/mailer/sendAddedContributionMessageEmail', () => { + return { + __esModule: true, + sendAddedContributionMessageEmail: jest.fn(), + } +}) let mutate: any, query: any, con: any let testEnv: any @@ -151,6 +159,20 @@ describe('ContributionMessageResolver', () => { }), ) }) + + it('calls sendAddedContributionMessageEmail', async () => { + expect(sendAddedContributionMessageEmail).toBeCalledWith({ + senderFirstName: 'Peter', + senderLastName: 'Lustig', + recipientFirstName: 'Bibi', + recipientLastName: 'Bloxberg', + recipientEmail: 'bibi@bloxberg.de', + senderEmail: 'peter@lustig.de', + contributionMemo: 'Test env contribution', + message: 'Admin Test', + overviewURL: 'http://localhost/overview', + }) + }) }) }) }) From e3257c1f717cc32ac589b0e8c016bf121de6b34e Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 14 Sep 2022 11:22:42 +0200 Subject: [PATCH 17/17] Fix prettier. --- backend/src/mailer/sendAddedContributionMessageEmail.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts index d867fd55b..1151a0abc 100644 --- a/backend/src/mailer/sendAddedContributionMessageEmail.test.ts +++ b/backend/src/mailer/sendAddedContributionMessageEmail.test.ts @@ -30,7 +30,9 @@ describe('sendAddedContributionMessageEmail', () => { text: expect.stringContaining('Hallo Bibi Bloxberg') && expect.stringContaining('Peter Lustig') && - expect.stringContaining('Du hast soeben zu deinem eingereichten Gradido Schöpfungsantrag "Vielen herzlichen Dank für den neuen Hexenbesen!" eine Rückfrage von Peter Lustig erhalten.') && + expect.stringContaining( + 'Du hast soeben zu deinem eingereichten Gradido Schöpfungsantrag "Vielen herzlichen Dank für den neuen Hexenbesen!" eine Rückfrage von Peter Lustig erhalten.', + ) && expect.stringContaining('Was für ein Besen ist es geworden?') && expect.stringContaining('http://localhost/overview'), })