Testing Emails with Vitest

Write clean, zero-network unit tests using @mailport/testing:

import { describe, expect, it } from 'vitest';
import { InMemoryTransport, createTestMailer } from '@mailport/testing';

describe('Password Reset Notification', () => {
  it('captures password reset token email', async () => {
    const transport = new InMemoryTransport();
    const mailer = createTestMailer({ transport });

    await mailer.send({
      from: 'auth@example.com',
      to: 'user@example.com',
      subject: 'Reset Password',
      text: 'Your reset code is 123456.',
    });

    expect(transport.inbox.count).toBe(1);
    const msg = transport.inbox.latest();
    expect(msg?.subject).toBe('Reset Password');
    expect(msg?.text).toContain('123456');
  });
});