返回 DeepSeek-Reasonix
managementDom.ts
根目录 / desktop / frontend / src / test-support / managementDom.ts
1 import { JSDOM } from "jsdom";
2 export function managementDom() {
3 const dom = new JSDOM('<!doctype html><div id="root"></div>', { url: "http://localhost", pretendToBeVisual: true });
4 Object.assign(globalThis, { window: dom.window, document: dom.window.document, HTMLElement: dom.window.HTMLElement,
5 HTMLInputElement: dom.window.HTMLInputElement, HTMLTextAreaElement: dom.window.HTMLTextAreaElement,
6 Element: dom.window.Element, Node: dom.window.Node, Event: dom.window.Event, MouseEvent: dom.window.MouseEvent,
7 localStorage: dom.window.localStorage, sessionStorage: dom.window.sessionStorage, IS_REACT_ACT_ENVIRONMENT: true,
8 ResizeObserver: class { observe() {} unobserve() {} disconnect() {} } });
9 Object.defineProperty(globalThis, "navigator", { configurable: true, value: dom.window.navigator });
10 globalThis.requestAnimationFrame = dom.window.requestAnimationFrame.bind(dom.window);
11 globalThis.cancelAnimationFrame = dom.window.cancelAnimationFrame.bind(dom.window);
12 window.matchMedia = () => ({ matches: true, addEventListener() {}, removeEventListener() {} }) as unknown as MediaQueryList;
13 return dom;
14 }
15
15 lines TYPESCRIPT