From 0e085435615ac3e39538e1f76cf7d45ad450a9a6 Mon Sep 17 00:00:00 2001 From: Vance Ingalls Date: Thu, 9 Jul 2026 01:11:29 -0700 Subject: [PATCH] test(sdk): cover attachSync against a detached iframe --- packages/sdk/src/adapters/iframe.sync.test.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/sdk/src/adapters/iframe.sync.test.ts b/packages/sdk/src/adapters/iframe.sync.test.ts index fdfabe9d9..0ef244d70 100644 --- a/packages/sdk/src/adapters/iframe.sync.test.ts +++ b/packages/sdk/src/adapters/iframe.sync.test.ts @@ -151,4 +151,15 @@ window.__timelines = { t: tl }; const liveStyle = iframe.contentDocument!.querySelector("style")!.textContent ?? ""; expect(liveStyle).toContain("green"); }); + + it("does not throw when a patch arrives after the iframe is removed from the DOM", async () => { + const iframe = mountIframe(BASE_HTML); + const comp = await openComposition(BASE_HTML); + const adapter = createIframePreviewAdapter(iframe); + adapter.attachSync(comp); + + iframe.remove(); // contentDocument becomes null (or inaccessible) once detached + + expect(() => comp.setStyle("hf-title", { color: "#0f0" })).not.toThrow(); + }); });