import { describe, expect, it } from 'vitest' import { render as renderVerifyCode } from '../src/templates/verify-code.js' import { render as renderWaitlistInvite } from '../src/templates/waitlist-invite.js' const SITE_LOCALES = ['en', 'zh', 'ja', 'ko', 'es', 'pt'] describe('transactional email locale coverage', () => { it.each(SITE_LOCALES)('renders the %s verification code email', locale => { const message = renderVerifyCode({ locale, code: '123456', ttlMin: 10 }) expect(message.subject).toContain('123456') expect(message.text).toContain('123456') expect(message.html).toContain('123456') }) it.each(SITE_LOCALES)('renders the %s waitlist invitation email', locale => { const message = renderWaitlistInvite({ locale, inviteUrl: 'https://voko.world/invite/ABC12345', }) expect(message.text).toContain('https://voko.world/invite/ABC12345') expect(message.html).toContain('https://voko.world/invite/ABC12345') }) it('rejects missing and unsupported locales instead of silently using English', () => { expect(() => renderVerifyCode({ code: '123456', ttlMin: 10 })).toThrow('unsupported locale: undefined') expect(() => renderVerifyCode({ locale: 'id', code: '123456', ttlMin: 10 })).toThrow('unsupported locale: id') expect(() => renderWaitlistInvite({ locale: 'id', inviteUrl: 'https://voko.world/invite/ABC12345' })).toThrow('unsupported locale: id') }) })