| 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 |