mirror of
https://github.com/slexkit/obsidian-slexkit.git
synced 2026-07-22 07:25:12 +00:00
31 lines
806 B
TypeScript
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;
|
|
}
|