diff --git a/src/lib/__tests__/emailHtml.test.ts b/src/lib/__tests__/emailHtml.test.ts index 0be3365..04ebfa0 100644 --- a/src/lib/__tests__/emailHtml.test.ts +++ b/src/lib/__tests__/emailHtml.test.ts @@ -218,6 +218,31 @@ describe("prepareHtml", () => { assert.ok(result.includes("e.data.type==='iframe-parent-width'")); }); + it("mirrors a missing trailing spacer in a centered email wrapper", async () => { + const dom = new JSDOM( + prepareHtml( + documentWith( + '
 

Message

', + "", + ), + ), + { runScripts: "dangerously", pretendToBeVisual: true }, + ); + + await new Promise((resolve) => setTimeout(resolve, 0)); + const cells = dom.window.document.querySelectorAll( + 'table[width="100%"] > tbody > tr > td', + ); + assert.equal(cells.length, 3); + assert.equal(cells[2].className, "device-width"); + assert.equal( + cells[2].getAttribute("data-email-client-mirrored-spacer"), + "true", + ); + assert.equal(cells[2].getAttribute("aria-hidden"), "true"); + dom.window.close(); + }); + describe("links", () => { it("linkifies a bare URL without nesting an existing link", () => { const result = prepareHtml( diff --git a/src/lib/emailHtml.ts b/src/lib/emailHtml.ts index e28762b..ec44eef 100644 --- a/src/lib/emailHtml.ts +++ b/src/lib/emailHtml.ts @@ -246,6 +246,33 @@ function resizeScript( return `