From ac358ab0d86e463417315ea32024f87ce2310d1a Mon Sep 17 00:00:00 2001 From: mahula Date: Mon, 15 May 2023 17:32:42 +0200 Subject: [PATCH] change unit tests for email variants --- backend/src/emails/sendEmailVariants.test.ts | 440 ++++++++++++++----- 1 file changed, 335 insertions(+), 105 deletions(-) diff --git a/backend/src/emails/sendEmailVariants.test.ts b/backend/src/emails/sendEmailVariants.test.ts index 28e441b5b..e3655a405 100644 --- a/backend/src/emails/sendEmailVariants.test.ts +++ b/backend/src/emails/sendEmailVariants.test.ts @@ -31,6 +31,11 @@ let testEnv: { con: Connection } +// TODO +// when https://gdd.gradido.net/img/gradido-email-header.jpg is on production, +// replace this URL by https://gdd.gradido.net/img/brand/gradido-email-header.png +const headerImageURL = 'https://cdn.discordapp.com/attachments/913740067208564736/1107629904306110595/Kopf-Grafik.png' + beforeAll(async () => { testEnv = await testEnvironment(logger, localization) con = testEnv.con @@ -108,10 +113,7 @@ describe('sendEmailVariants', () => { it('has correct header', () => { expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/brand/gradido-logo.png"', - ) - expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/template/Blaetter.png"', + `src="${headerImageURL}"`, ) }) @@ -231,10 +233,7 @@ describe('sendEmailVariants', () => { it('has correct header', () => { expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/brand/gradido-logo.png"', - ) - expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/template/Blaetter.png"', + `src="${headerImageURL}"`, ) }) @@ -272,7 +271,7 @@ describe('sendEmailVariants', () => { 'If the validity of the link has already expired, you can have a new link sent to you here.' ) expect(result.originalMessage.html).toContain('>New link') - expect(result.originalMessage.html).toContain('href="http://localhost/forgot-password"') + expect(result.originalMessage.html).toContain(`href="${CONFIG.EMAIL_LINK_FORGOTPASSWORD}"`) }) it('has correct greating formula', () => { @@ -359,10 +358,7 @@ describe('sendEmailVariants', () => { it('has correct header', () => { expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/brand/gradido-logo.png"', - ) - expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/template/Blaetter.png"', + `src="${headerImageURL}"`, ) }) @@ -499,10 +495,7 @@ describe('sendEmailVariants', () => { it('has correct header', () => { expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/brand/gradido-logo.png"', - ) - expect(result.originalMessage.html).toContain( - 'src="https://gdd.gradido.net/img/template/Blaetter.png"', + `src="${headerImageURL}"`, ) }) @@ -603,7 +596,9 @@ describe('sendEmailVariants', () => { }, }) }) + }) + describe('result', () => { it('has expected result', () => { expect(result).toMatchObject({ envelope: { @@ -617,38 +612,80 @@ describe('sendEmailVariants', () => { attachments: [], subject: 'Gradido: Your common good contribution was rejected', html: expect.any(String), - text: expect.stringContaining('GRADIDO: YOUR COMMON GOOD CONTRIBUTION WAS REJECTED'), + text: expect.stringContaining('YOUR COMMON GOOD CONTRIBUTION WAS REJECTED'), }), }) + }) + + it('has correct header', () => { + expect(result.originalMessage.html).toContain( + `src="${headerImageURL}"`, + ) + }) + + it('has correct doctype and language set', () => { expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('') + expect(result.originalMessage.html).toContain(' { expect(result.originalMessage.html).toContain( - 'Gradido: Your common good contribution was rejected', + '>Your common good contribution was rejected', + ) + expect(result.originalMessage.html).toContain('Hello Peter Lustig,') + expect(result.originalMessage.html).toContain( + 'Your common good contribution “My contribution.” was rejected by Bibi Bloxberg.', + ) + }) + + it('has correct CTA block', () => { + expect(result.originalMessage.html).toContain('>Contribution details') + expect(result.originalMessage.html).toContain( + 'To see your common good contributions and related messages, go to the “Creation” menu in your Gradido account and click on the “My contributions” tab.', ) expect(result.originalMessage.html).toContain( - '>Gradido: Your common good contribution was rejected', + 'To account') + expect(result.originalMessage.html).toContain('Please do not reply to this email.') + }) + + it('has correct greating formula', () => { + expect(result.originalMessage.html).toContain('Kind regards,your Gradido team') + }) + + it('has correct footer', () => { + expect(result.originalMessage.html).toContain('href="https://t.me/GradidoGruppe"') + expect(result.originalMessage.html).toContain('href="https://www.youtube.com/c/GradidoNet"') + expect(result.originalMessage.html).toContain('href="https://twitter.com/gradido"') expect(result.originalMessage.html).toContain( - 'Your public good contribution “My contribution.” was rejected by Bibi Bloxberg.', + 'href="https://www.facebook.com/groups/Gradido/"', + ) + expect(result.originalMessage.html).toContain('
${CONFIG.EMAIL_LINK_OVERVIEW}`, - ) - expect(result.originalMessage.html).toContain('Please do not reply to this email!') - expect(result.originalMessage.html).toContain('Kind regards,
your Gradido team') - expect(result.originalMessage.html).toContain('—————') - expect(result.originalMessage.html).toContain( - '
Gradido-Akademie Logo

Gradido-Akademie
Institut für Wirtschaftsbionik
Pfarrweg 2
74653 Künzelsau
Deutschland
support@supportmail.com
http://localhost/', + ' { + describe('sendContributionDeletedEmail', () => { beforeAll(async () => { result = await sendContributionDeletedEmail({ firstName: 'Peter', @@ -681,8 +718,10 @@ describe('sendEmailVariants', () => { }, }) }) - - it('has expected result', () => { + }) + + describe('result', () => { + it('is the expected object', () => { expect(result).toMatchObject({ envelope: { from: 'info@gradido.net', @@ -695,38 +734,85 @@ describe('sendEmailVariants', () => { attachments: [], subject: 'Gradido: Your common good contribution was deleted', html: expect.any(String), - text: expect.stringContaining('GRADIDO: YOUR COMMON GOOD CONTRIBUTION WAS DELETED'), + text: expect.stringContaining('YOUR COMMON GOOD CONTRIBUTION WAS DELETED'), }), }) - expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('') + }) + + it('has correct header', () => { expect(result.originalMessage.html).toContain( - 'Gradido: Your common good contribution was deleted', - ) - expect(result.originalMessage.html).toContain( - '>Gradido: Your common good contribution was deleted', - ) - expect(result.originalMessage.html).toContain('Hello Peter Lustig') - expect(result.originalMessage.html).toContain( - 'Your public good contribution “My contribution.” was deleted by Bibi Bloxberg.', - ) - expect(result.originalMessage.html).toContain( - 'To see your common good contributions and related messages, go to the “Creation” menu in your Gradido account and click on the “My contributions” tab!', - ) - expect(result.originalMessage.html).toContain( - `Link to your account: ${CONFIG.EMAIL_LINK_OVERVIEW}`, - ) - expect(result.originalMessage.html).toContain('Please do not reply to this email!') - expect(result.originalMessage.html).toContain('Kind regards,
your Gradido team') - expect(result.originalMessage.html).toContain('—————') - expect(result.originalMessage.html).toContain( - '
Gradido-Akademie Logo

Gradido-Akademie
Institut für Wirtschaftsbionik
Pfarrweg 2
74653 Künzelsau
Deutschland
support@supportmail.com
http://localhost/', + `src="${headerImageURL}"`, ) }) + + it('has correct doctype and language set', () => { + expect(result.originalMessage.html).toContain('') + expect(result.originalMessage.html).toContain(' { + expect(result.originalMessage.html).toContain( + '>Your common good contribution was deleted', + ) + expect(result.originalMessage.html).toContain('Hello Peter Lustig,') + expect(result.originalMessage.html).toContain( + 'Your common good contribution “My contribution.” was deleted by Bibi Bloxberg.', + ) + }) + + it('has correct CTA block', () => { + expect(result.originalMessage.html).toContain('>Contribution details') + expect(result.originalMessage.html).toContain( + 'To see your common good contributions and related messages, go to the “Creation” menu in your Gradido account and click on the “My contributions” tab.', + ) + expect(result.originalMessage.html).toContain( + 'href="https://gdd.gradido.net/community/contributions', + ) + expect(result.originalMessage.html).toContain('>To account') + expect(result.originalMessage.html).toContain('Or copy the link into your browser window.') + expect(result.originalMessage.html).toContain( + '>https://gdd.gradido.net/community/contributions', + ) + expect(result.originalMessage.html).toContain('Please do not reply to this email.') + }) + + it('has correct greating formula', () => { + expect(result.originalMessage.html).toContain('Kind regards,your Gradido team') + }) + + it('has correct footer', () => { + expect(result.originalMessage.html).toContain('href="https://t.me/GradidoGruppe"') + expect(result.originalMessage.html).toContain('href="https://www.youtube.com/c/GradidoNet"') + expect(result.originalMessage.html).toContain('href="https://twitter.com/gradido"') + expect(result.originalMessage.html).toContain( + 'href="https://www.facebook.com/groups/Gradido/"', + ) + expect(result.originalMessage.html).toContain('
{ + describe('sendResetPasswordEmail', () => { beforeAll(async () => { result = await sendResetPasswordEmail({ firstName: 'Peter', @@ -757,8 +843,10 @@ describe('sendEmailVariants', () => { }, }) }) + }) - it('has expected result', () => { + describe('result', () => { + it('is the expected object', () => { expect(result).toMatchObject({ envelope: { from: 'info@gradido.net', @@ -771,40 +859,90 @@ describe('sendEmailVariants', () => { attachments: [], subject: 'Gradido: Reset password', html: expect.any(String), - text: expect.stringContaining('GRADIDO: RESET PASSWORD'), + text: expect.stringContaining('RESET PASSWORD'), }), }) + }) + + it('has correct header', () => { + expect(result.originalMessage.html).toContain( + `src="${headerImageURL}"`, + ) + }) + + it('has correct doctype and language set', () => { expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('Gradido: Reset password') - expect(result.originalMessage.html).toContain('>Gradido: Reset password') - expect(result.originalMessage.html).toContain('Hello Peter Lustig') + expect(result.originalMessage.html).toContain(' { + expect(result.originalMessage.html).toContain('>Reset password') + expect(result.originalMessage.html).toContain('Hello Peter Lustig,') expect(result.originalMessage.html).toContain( 'You, or someone else, requested a password reset for this account.', ) - expect(result.originalMessage.html).toContain('If it was you, please click on the link:') + }) + + it('has correct CTA block', () => { + expect(result.originalMessage.html).toContain('>Reset password') expect(result.originalMessage.html).toContain( - 'http://localhost/reset-password/3762660021544901417', + 'If it was you, please click here.', ) expect(result.originalMessage.html).toContain( - 'or copy the link above into your browser window.', + 'reset') + expect(result.originalMessage.html).toContain('Or copy the link into your browser window.') + expect(result.originalMessage.html).toContain( + 'http://localhost/reset-password/3762660021544901417', + ) + expect(result.originalMessage.html).toContain('>Request new valid link') + expect(result.originalMessage.html).toContain( + 'The link has a validity of 23 hours and 30 minutes.' ) expect(result.originalMessage.html).toContain( - 'The link has a validity of 23 hours and 30 minutes. If the validity of the link has already expired, you can have a new link sent to you here:', + 'If the validity of the link has already expired, you can have a new link sent to you here.' + ) + expect(result.originalMessage.html).toContain('>New link') + expect(result.originalMessage.html).toContain(`href="${CONFIG.EMAIL_LINK_FORGOTPASSWORD}"`) + }) + + it('has correct greating formula', () => { + expect(result.originalMessage.html).toContain('Kind regards,your Gradido team') + }) + + it('has correct footer', () => { + expect(result.originalMessage.html).toContain('href="https://t.me/GradidoGruppe"') + expect(result.originalMessage.html).toContain('href="https://www.youtube.com/c/GradidoNet"') + expect(result.originalMessage.html).toContain('href="https://twitter.com/gradido"') + expect(result.originalMessage.html).toContain( + 'href="https://www.facebook.com/groups/Gradido/"', + ) + expect(result.originalMessage.html).toContain('
${CONFIG.EMAIL_LINK_FORGOTPASSWORD}`, - ) - expect(result.originalMessage.html).toContain('Kind regards,
your Gradido team') - expect(result.originalMessage.html).toContain('—————') - expect(result.originalMessage.html).toContain( - '
Gradido-Akademie Logo

Gradido-Akademie
Institut für Wirtschaftsbionik
Pfarrweg 2
74653 Künzelsau
Deutschland
support@supportmail.com
http://localhost/', + ' { + describe('sendTransactionLinkRedeemedEmail', () => { beforeAll(async () => { result = await sendTransactionLinkRedeemedEmail({ firstName: 'Peter', @@ -841,8 +979,10 @@ describe('sendEmailVariants', () => { }, }) }) + }) - it('has expected result', () => { + describe('result', () => { + it('is the expected object', () => { expect(result).toMatchObject({ envelope: { from: 'info@gradido.net', @@ -858,34 +998,79 @@ describe('sendEmailVariants', () => { text: expect.stringContaining('BIBI BLOXBERG HAS REDEEMED YOUR GRADIDO LINK'), }), }) + }) + + it('has correct header', () => { + expect(result.originalMessage.html).toContain( + `src="${headerImageURL}"`, + ) + }) + + it('has correct doctype and language set', () => { expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('') + expect(result.originalMessage.html).toContain(' { expect(result.originalMessage.html).toContain( - 'Gradido: Bibi Bloxberg has redeemed your Gradido link', + '>Bibi Bloxberg has redeemed your Gradido link', ) - expect(result.originalMessage.html).toContain( - '>Gradido: Bibi Bloxberg has redeemed your Gradido link', - ) - expect(result.originalMessage.html).toContain('Hello Peter Lustig') + expect(result.originalMessage.html).toContain('Hello Peter Lustig,') expect(result.originalMessage.html).toContain( 'Bibi Bloxberg (bibi@bloxberg.de) has just redeemed your link.', ) + }) + + it('has correct CTA block', () => { + expect(result.originalMessage.html).toContain('>Transaction details') expect(result.originalMessage.html).toContain('Amount: 17.65 GDD') expect(result.originalMessage.html).toContain('Message: You deserve it! 🙏🏼') expect(result.originalMessage.html).toContain( - `You can find transaction details in your Gradido account: ${CONFIG.EMAIL_LINK_OVERVIEW}`, + 'You can find transaction details in your Gradido account.', ) - expect(result.originalMessage.html).toContain('Please do not reply to this email!') - expect(result.originalMessage.html).toContain('Kind regards,
your Gradido team') - expect(result.originalMessage.html).toContain('—————') expect(result.originalMessage.html).toContain( - '
Gradido-Akademie Logo

Gradido-Akademie
Institut für Wirtschaftsbionik
Pfarrweg 2
74653 Künzelsau
Deutschland
support@supportmail.com
http://localhost/', + 'To account') + expect(result.originalMessage.html).toContain('Please do not reply to this email.') + }) + + it('has correct greating formula', () => { + expect(result.originalMessage.html).toContain('Kind regards,your Gradido team') + }) + + it('has correct footer', () => { + expect(result.originalMessage.html).toContain('href="https://t.me/GradidoGruppe"') + expect(result.originalMessage.html).toContain('href="https://www.youtube.com/c/GradidoNet"') + expect(result.originalMessage.html).toContain('href="https://twitter.com/gradido"') + expect(result.originalMessage.html).toContain( + 'href="https://www.facebook.com/groups/Gradido/"', + ) + expect(result.originalMessage.html).toContain('
{ + describe('sendTransactionReceivedEmail', () => { beforeAll(async () => { result = await sendTransactionReceivedEmail({ firstName: 'Peter', @@ -920,8 +1105,10 @@ describe('sendEmailVariants', () => { }, }) }) + }) - it('has expected result', () => { + describe('result', () => { + it('is the expected object', () => { expect(result).toMatchObject({ envelope: { from: 'info@gradido.net', @@ -934,29 +1121,72 @@ describe('sendEmailVariants', () => { attachments: [], subject: 'Gradido: Bibi Bloxberg has sent you 37.40 Gradido', html: expect.any(String), - text: expect.stringContaining('GRADIDO: BIBI BLOXBERG HAS SENT YOU 37.40 GRADIDO'), + text: expect.stringContaining('BIBI BLOXBERG HAS SENT YOU 37.40 GRADIDO'), }), }) + }) + + it('has correct header', () => { + expect(result.originalMessage.html).toContain( + `src="${headerImageURL}"`, + ) + }) + + it('has correct doctype and language set', () => { expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain('') - expect(result.originalMessage.html).toContain( - 'Gradido: Bibi Bloxberg has sent you 37.40 Gradido', - ) - expect(result.originalMessage.html).toContain( - '>Gradido: Bibi Bloxberg has sent you 37.40 Gradido', - ) - expect(result.originalMessage.html).toContain('Hello Peter Lustig') + expect(result.originalMessage.html).toContain(' { + expect(result.originalMessage.html).toContain('>Bibi Bloxberg has sent you 37.40 Gradido') + expect(result.originalMessage.html).toContain('Hello Peter Lustig,') expect(result.originalMessage.html).toContain( 'You have just received 37.40 GDD from Bibi Bloxberg (bibi@bloxberg.de).', ) + }) + + it('has correct CTA block', () => { + expect(result.originalMessage.html).toContain('>Transaction details') expect(result.originalMessage.html).toContain( - `You can find transaction details in your Gradido account: ${CONFIG.EMAIL_LINK_OVERVIEW}`, + 'You can find transaction details in your Gradido account.', ) - expect(result.originalMessage.html).toContain('Please do not reply to this email!') - expect(result.originalMessage.html).toContain('Kind regards,
your Gradido team') - expect(result.originalMessage.html).toContain('—————') expect(result.originalMessage.html).toContain( - '
Gradido-Akademie Logo

Gradido-Akademie
Institut für Wirtschaftsbionik
Pfarrweg 2
74653 Künzelsau
Deutschland
support@supportmail.com
http://localhost/', + 'To account') + expect(result.originalMessage.html).toContain('Please do not reply to this email.') + }) + + it('has correct greating formula', () => { + expect(result.originalMessage.html).toContain('Kind regards,your Gradido team') + }) + + it('has correct footer', () => { + expect(result.originalMessage.html).toContain('href="https://t.me/GradidoGruppe"') + expect(result.originalMessage.html).toContain('href="https://www.youtube.com/c/GradidoNet"') + expect(result.originalMessage.html).toContain('href="https://twitter.com/gradido"') + expect(result.originalMessage.html).toContain( + 'href="https://www.facebook.com/groups/Gradido/"', + ) + expect(result.originalMessage.html).toContain('