import { describe, expect, it } from 'vitest' import { render } from '../src/templates/order-notice.js' const LOCALES = ['en', 'zh', 'ja', 'ko', 'es', 'pt'] const PURPOSES = ['order_paid', 'subscription_active', 'subscription_canceled', 'order_refunded', 'order_disputed'] describe('order notice email locale coverage', () => { it.each(LOCALES.flatMap(locale => PURPOSES.map(purpose => [locale, purpose])))('renders %s %s', (locale, purpose) => { const message = render({ locale, purpose, orderId: 'ord_123', productId: 'credits_100', amount: 'USD 9.99', status: 'paid', }) expect(message.subject).not.toBe('') expect(message.text).toContain('ord_123') expect(message.html).toContain('credits_100') }) it('rejects unsupported locales and purposes', () => { const data = { orderId: 'ord_123', productId: 'credits_100', status: 'paid' } expect(() => render({ ...data, locale: 'id', purpose: 'order_paid' })).toThrow('unsupported locale: id') expect(() => render({ ...data, locale: 'en', purpose: 'unknown' })).toThrow('unsupported purpose: unknown') }) })