/** * Side-effect module: initializes JSDOM globals BEFORE any other imports. * Must be imported before @testing-library/preact to ensure `document` exists * when @testing-library/dom's `screen` is initialized at module load time. */ import { JSDOM } from "jsdom"; const jsdom = new JSDOM("", { url: "http://localhost", pretendToBeVisual: true, }); const win = jsdom.window; // deno-lint-ignore no-explicit-any (globalThis as any).document = win.document; // deno-lint-ignore no-explicit-any (globalThis as any).window = win; // deno-lint-ignore no-explicit-any (globalThis as any).navigator = win.navigator; // deno-lint-ignore no-explicit-any (globalThis as any).HTMLElement = win.HTMLElement; // deno-lint-ignore no-explicit-any (globalThis as any).HTMLInputElement = win.HTMLInputElement; // deno-lint-ignore no-explicit-any (globalThis as any).HTMLTextAreaElement = win.HTMLTextAreaElement; // deno-lint-ignore no-explicit-any (globalThis as any).HTMLButtonElement = win.HTMLButtonElement; // deno-lint-ignore no-explicit-any (globalThis as any).Event = win.Event; // deno-lint-ignore no-explicit-any (globalThis as any).CustomEvent = win.CustomEvent; // deno-lint-ignore no-explicit-any (globalThis as any).MouseEvent = win.MouseEvent; // deno-lint-ignore no-explicit-any (globalThis as any).InputEvent = win.InputEvent; // deno-lint-ignore no-explicit-any (globalThis as any).Node = win.Node; // deno-lint-ignore no-explicit-any (globalThis as any).requestAnimationFrame = win.requestAnimationFrame.bind(win); // deno-lint-ignore no-explicit-any (globalThis as any).cancelAnimationFrame = win.cancelAnimationFrame.bind(win); // deno-lint-ignore no-explicit-any (globalThis as any).MutationObserver = win.MutationObserver;