import { expect, test } from "bun:test"; import { JSDOM } from "jsdom"; import { builderPreviewHTML } from "../src/preview-html.ts"; test("preview sanitization preserves email layout and editor markers but removes executable content", () => { const { window } = new JSDOM(""); const result = String(builderPreviewHTML('
Hello
', window.document as unknown as Document)); expect(result).toContain('data-block-id="one"'); expect(result).toContain(''); expect(result).not.toMatch(/onerror|javascript:| { const { window } = new JSDOM(""); const doc = window.document as unknown as Document; builderPreviewHTML("

First page

", doc); const key = Symbol.for("wrnexus.block-editor.preview-sanitizer"); const first = (window as any)[key]; const secondModule = await import("../src/preview-html.ts?second-page"); expect(String(secondModule.builderPreviewHTML("

Second page

", doc))).toContain("Second page"); expect((window as any)[key]).toBe(first); window.close(); });