Skip to content

Commit f494eba

Browse files
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
1 parent 598542d commit f494eba

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

packages/email-nodemailer/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async function buildEmail(emailConfig?: NodemailerAdapterArgs): Promise<{
6666
transport = await createMockAccount(emailConfig)
6767
}
6868

69-
if (emailConfig.skipVerify !== false) {
69+
if (!emailConfig.skipVerify) {
7070
await verifyTransport(transport)
7171
}
7272

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { jest } from '@jest/globals'
2+
3+
import nodemailer, { Transporter } from 'nodemailer'
4+
import { nodemailerAdapter, NodemailerAdapterArgs } from './index.js'
5+
6+
const defaultArgs: NodemailerAdapterArgs = {
7+
defaultFromAddress: 'test@test.com',
8+
defaultFromName: 'Test',
9+
}
10+
11+
describe('email-nodemailer', () => {
12+
13+
describe('transport verification', () => {
14+
let mockedVerify: jest.Mock<Transporter['verify']>
15+
let mockTransport: Transporter
16+
17+
beforeEach(() => {
18+
mockedVerify = jest.fn<Transporter['verify']>()
19+
mockTransport = nodemailer.createTransport({
20+
name: 'existing-transport',
21+
// eslint-disable-next-line @typescript-eslint/require-await
22+
send: async (mail) => {
23+
console.log('mock send', mail)
24+
},
25+
version: '0.0.1',
26+
verify: mockedVerify,
27+
})
28+
})
29+
30+
it('should be invoked when skipVerify = false', async () => {
31+
await nodemailerAdapter({
32+
...defaultArgs,
33+
transport: mockTransport,
34+
skipVerify: false,
35+
})
36+
37+
expect(mockedVerify.mock.calls).toHaveLength(1)
38+
})
39+
40+
it('should be invoked when skipVerify is undefined', async () => {
41+
await nodemailerAdapter({
42+
...defaultArgs,
43+
transport: mockTransport,
44+
skipVerify: false,
45+
})
46+
47+
expect(mockedVerify.mock.calls).toHaveLength(1)
48+
})
49+
50+
it('should not be invoked when skipVerify = true', async () => {
51+
await nodemailerAdapter({
52+
...defaultArgs,
53+
transport: mockTransport,
54+
skipVerify: true,
55+
})
56+
57+
expect(mockedVerify.mock.calls).toHaveLength(0)
58+
})
59+
})
60+
})

0 commit comments

Comments
 (0)