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(
+ '
',
+ "",
+ ),
+ ),
+ { 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 `