// @vitest-environment happy-dom import { afterEach, describe, expect, it } from "vitest"; import { ACTIVE_PREVIEW_PAGE_SELECTOR, activePreviewPageSelector, readPreviewPageDataUrl } from "./preview"; describe("preview helpers", () => { afterEach(() => { document.body.replaceChildren(); }); it("reads the active preview while an exiting layer remains mounted", () => { document.body.innerHTML = `
`; const [exiting, active] = document.querySelectorAll("canvas"); if (!exiting || !active) throw new Error("Expected both preview layers."); exiting.toDataURL = () => "exiting"; active.toDataURL = () => "active"; expect(readPreviewPageDataUrl(ACTIVE_PREVIEW_PAGE_SELECTOR)).toBe("active"); }); it("accepts a requested active template with the same bitmap as the previous layer", () => { document.body.innerHTML = `
`; for (const canvas of document.querySelectorAll("canvas")) { canvas.toDataURL = () => "same-bitmap"; } expect(readPreviewPageDataUrl(activePreviewPageSelector("glalie"))).toBe("same-bitmap"); }); it("does not accept an unrelated active template", () => { document.body.innerHTML = `
`; expect(() => readPreviewPageDataUrl(activePreviewPageSelector("glalie"))).toThrow( "Expected an active first-page canvas.", ); }); });