// @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.",
);
});
});