mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
29 lines
1.4 KiB
TypeScript
29 lines
1.4 KiB
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import {SmtpEmailProvider} from '@pkgs/email/src/SmtpEmailProvider';
|
|
import {beforeEach, describe, expect, it, vi} from 'vitest';
|
|
|
|
const {createTransport} = vi.hoisted(() => ({createTransport: vi.fn()}));
|
|
|
|
vi.mock('nodemailer', () => ({default: {createTransport}}));
|
|
|
|
describe('SmtpEmailProvider', () => {
|
|
beforeEach(() => {
|
|
createTransport.mockReset();
|
|
createTransport.mockReturnValue({sendMail: vi.fn(), verify: vi.fn()});
|
|
});
|
|
|
|
it.each([
|
|
{port: 465, tlsMode: undefined, secure: true, requireTLS: false, ignoreTLS: false},
|
|
{port: 587, tlsMode: undefined, secure: false, requireTLS: true, ignoreTLS: false},
|
|
{port: 587, tlsMode: null, secure: false, requireTLS: true, ignoreTLS: false},
|
|
{port: 587, tlsMode: 'implicit', secure: true, requireTLS: false, ignoreTLS: false},
|
|
{port: 465, tlsMode: 'starttls', secure: false, requireTLS: true, ignoreTLS: false},
|
|
{port: 25, tlsMode: 'opportunistic', secure: false, requireTLS: false, ignoreTLS: false},
|
|
{port: 587, tlsMode: 'none', secure: false, requireTLS: false, ignoreTLS: true},
|
|
] as const)('maps TLS mode $tlsMode on port $port to nodemailer options', ({port, tlsMode, ...expected}) => {
|
|
new SmtpEmailProvider({host: 'smtp.example.com', port, username: 'user', password: 'pass', tlsMode});
|
|
expect(createTransport).toHaveBeenCalledWith(expect.objectContaining(expected));
|
|
});
|
|
});
|