import { describe, expect, it } from 'vitest'; import { verificationEmail, alertEmail, digestEmail } from './templates.js'; import { resolveTransport, sendMail } from './transport.js'; describe('templates', () => { it('render code and escape html', () => { const m = verificationEmail({ code: '123456', minutes: 10 }); expect(m.subject).toContain('123456'); expect(m.html).toContain('123456'); expect(m.text).toContain('10 minutes'); const a = alertEmail({ title: 'x', body: 'b', href: 'https://x', facts: [['RIV', '$1,000']] }); expect(a.html).not.toContain('x'); expect(a.html).toContain('<b>x</b>'); const d = digestEmail({ name: null, period: 'weekly', sections: [{ heading: 'Movers', rows: [{ label: 'A', value: '$1', delta: '-2%' }] }] }); expect(d.text).toContain('MOVERS'); }); it('console transport works without keys', async () => { process.env.EMAIL_TRANSPORT = 'console'; expect(resolveTransport()).toBe('console'); const r = await sendMail({ to: 'a@b.c', subject: 's', html: '
h
', text: 't' }); expect(r.ok).toBe(true); }); });