SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
1.1 KB · 24 lines typescript
Raw Blame History
1import { describe, expect, it } from 'vitest';2import { verificationEmail, alertEmail, digestEmail } from './templates.js';3import { resolveTransport, sendMail } from './transport.js';45describe('templates', () => {6  it('render code and escape html', () => {7    const m = verificationEmail({ code: '123456', minutes: 10 });8    expect(m.subject).toContain('123456');9    expect(m.html).toContain('123456');10    expect(m.text).toContain('10 minutes');11    const a = alertEmail({ title: '<b>x</b>', body: 'b', href: 'https://x', facts: [['RIV', '$1,000']] });12    expect(a.html).not.toContain('<b>x</b>');13    expect(a.html).toContain('&lt;b&gt;x&lt;/b&gt;');14    const d = digestEmail({ name: null, period: 'weekly', sections: [{ heading: 'Movers', rows: [{ label: 'A', value: '$1', delta: '-2%' }] }] });15    expect(d.text).toContain('MOVERS');16  });17  it('console transport works without keys', async () => {18    process.env.EMAIL_TRANSPORT = 'console';19    expect(resolveTransport()).toBe('console');20    const r = await sendMail({ to: 'a@b.c', subject: 's', html: '<p>h</p>', text: 't' });21    expect(r.ok).toBe(true);22  });23});24