fix(email-nodemailer): skipVerify behavior being reversed (#6790)

Fixes #6789

The skipVerify field in NodemailerAdapterArgs worked in reverse of what
it was supposed to do:
- With skipVerify = true -> Verified transport
- With skipVerify = false -> Did not verify transport

This PR makes the property work in the intended way:
- With skipVerify = true -> DO NOT verify transport
- With skipVerify = false -> DO verify transport
This commit is contained in:
Jasper Beaurain
2024-07-15 18:52:09 +02:00
committed by GitHub
parent 598542dd51
commit f494ebabbf
2 changed files with 61 additions and 1 deletions

View File

@@ -66,7 +66,7 @@ async function buildEmail(emailConfig?: NodemailerAdapterArgs): Promise<{
transport = await createMockAccount(emailConfig)
}
if (emailConfig.skipVerify !== false) {
if (!emailConfig.skipVerify) {
await verifyTransport(transport)
}

View File

@@ -0,0 +1,60 @@
import { jest } from '@jest/globals'
import nodemailer, { Transporter } from 'nodemailer'
import { nodemailerAdapter, NodemailerAdapterArgs } from './index.js'
const defaultArgs: NodemailerAdapterArgs = {
defaultFromAddress: 'test@test.com',
defaultFromName: 'Test',
}
describe('email-nodemailer', () => {
describe('transport verification', () => {
let mockedVerify: jest.Mock<Transporter['verify']>
let mockTransport: Transporter
beforeEach(() => {
mockedVerify = jest.fn<Transporter['verify']>()
mockTransport = nodemailer.createTransport({
name: 'existing-transport',
// eslint-disable-next-line @typescript-eslint/require-await
send: async (mail) => {
console.log('mock send', mail)
},
version: '0.0.1',
verify: mockedVerify,
})
})
it('should be invoked when skipVerify = false', async () => {
await nodemailerAdapter({
...defaultArgs,
transport: mockTransport,
skipVerify: false,
})
expect(mockedVerify.mock.calls).toHaveLength(1)
})
it('should be invoked when skipVerify is undefined', async () => {
await nodemailerAdapter({
...defaultArgs,
transport: mockTransport,
skipVerify: false,
})
expect(mockedVerify.mock.calls).toHaveLength(1)
})
it('should not be invoked when skipVerify = true', async () => {
await nodemailerAdapter({
...defaultArgs,
transport: mockTransport,
skipVerify: true,
})
expect(mockedVerify.mock.calls).toHaveLength(0)
})
})
})