import { JSDOM } from "jsdom"; export function installControlHookDom() { const dom = new JSDOM("", { url: "http://localhost", }); const descriptors = Object.getOwnPropertyDescriptors(globalThis); const values = { window: dom.window, document: dom.window.document, navigator: dom.window.navigator, IS_REACT_ACT_ENVIRONMENT: true, }; for (const [key, value] of Object.entries(values)) Object.defineProperty(globalThis, key, { configurable: true, writable: true, value, }); return () => { dom.window.close(); for (const key of Object.keys(values)) { if (descriptors[key]) Object.defineProperty(globalThis, key, descriptors[key]); else Reflect.deleteProperty(globalThis, key); } }; }