import { expect, test } from "bun:test"; import { renderEmail } from "../src/index.ts"; test("explicit heading sizes are not multiplied by browser heading defaults", async () => { for (const size of [undefined, "36px", "expression(1)"]) { const result = await renderEmail( { schemaVersion: 1, kind: "email", meta: { subject: "Typography", lang: "en" }, theme: { tokens: {} }, root: { id: "root", type: "layout.email-document", version: 1, props: { width: "600" }, styles: {}, slots: { content: [ { id: "heading", type: "content.heading", version: 1, props: { text: "Design that works", level: "1" }, styles: size ? { fontSize: { base: size } } : {}, slots: {}, }, ], }, }, }, { amp: false, mjml: false }, ); expect(result.ok).toBe(true); if (!result.ok) continue; const html = result.value.parts.html.content; expect(html.includes("font-size:inherit;line-height:1.2;")).toBe(size === "36px"); expect(html).not.toContain("expression("); } });