const test = require('node:test'); const assert = require('node:assert/strict'); const { DEFAULT_ACCOUNT_EMAIL_TEMPLATES, formatAccountEmailExpiry, renderAccountEmailTemplate } = require('../src/data/account-email-templates'); test('account email expiry values render with singular and plural units', () => { assert.equal(formatAccountEmailExpiry(1, 'minutes'), '1 minute'); assert.equal(formatAccountEmailExpiry(30, 'minutes'), '30 minutes'); assert.equal(formatAccountEmailExpiry(24, 'hours'), '24 hours'); assert.equal(renderAccountEmailTemplate('Subject [[expiry_time]]', 'Expires in [[expiry_time]].', { expiry_time: '45 minutes' }).text, 'Expires in 45 minutes.'); }); test('default account email templates render both the action button and inline link', () => { const rendered = renderAccountEmailTemplate('Subject', DEFAULT_ACCOUNT_EMAIL_TEMPLATES.verificationBody, { url: 'https://example.test/verify', display_name: 'Alex', expiry_time: '30 minutes', action_label: 'Verify email address' }); assert.match(rendered.html, /Alex<\/strong>/); assert.match(rendered.html, /This link<\/u> expires in 30 minutes<\/em>\./); assert.match(rendered.html, /Confirm this email address: https:\/\/example\.test\/verify<\/a>/); assert.doesNotMatch(rendered.html, /\[\[(?:action_button|url)\]\]/); });