// @vitest-environment jsdom import { act, lazy, useState } from "react"; import { createRoot } from "react-dom/client"; import { afterEach, beforeEach, expect, it, vi } from "vitest"; import { DeferredOverlay } from "./DeferredOverlay"; const capture = vi.hoisted(() => vi.fn()); vi.mock("../lib/sentry", () => ({ captureBrowserException: capture })); let container: HTMLDivElement; let root: ReturnType; beforeEach(() => { container = document.createElement("div"); document.body.appendChild(container); root = createRoot(container); vi.spyOn(console, "error").mockImplementation(() => {}); }); afterEach(async () => { await act(async () => root.unmount()); container.remove(); vi.restoreAllMocks(); capture.mockClear(); }); it("dismisses a failed chunk without replacing the board or its draft", async () => { const Failed = lazy(async () => { throw new Error("Chunk download failed"); }); function Board() { const [requested, setRequested] = useState(true); return <>