slexkit_obsidian-slexkit/tests/setup.ts
2026-05-30 01:22:26 +08:00

31 lines
806 B
TypeScript

import { mock } from "bun:test";
import { JSDOM } from "jsdom";
const dom = new JSDOM("<!doctype html><html><body></body></html>", {
url: "http://localhost/",
pretendToBeVisual: true,
});
const globals: Record<string, unknown> = {
window: dom.window,
Window: dom.window.Window,
document: dom.window.document,
navigator: dom.window.navigator,
HTMLElement: dom.window.HTMLElement,
Element: dom.window.Element,
Node: dom.window.Node,
Event: dom.window.Event,
CustomEvent: dom.window.CustomEvent,
};
for (const [key, value] of Object.entries(globals)) {
Object.defineProperty(globalThis, key, {
value,
configurable: true,
writable: true,
});
}
if (!Element.prototype.scrollTo) {
Element.prototype.scrollTo = mock() as unknown as typeof Element.prototype.scrollTo;
}