dom_shim.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * Side-effect module: initializes JSDOM globals BEFORE any other imports.
  3. * Must be imported before @testing-library/preact to ensure `document` exists
  4. * when @testing-library/dom's `screen` is initialized at module load time.
  5. */
  6. import { JSDOM } from "jsdom";
  7. const jsdom = new JSDOM("<!DOCTYPE html><html><body></body></html>", {
  8. url: "http://localhost",
  9. pretendToBeVisual: true,
  10. });
  11. const win = jsdom.window;
  12. // deno-lint-ignore no-explicit-any
  13. (globalThis as any).document = win.document;
  14. // deno-lint-ignore no-explicit-any
  15. (globalThis as any).window = win;
  16. // deno-lint-ignore no-explicit-any
  17. (globalThis as any).navigator = win.navigator;
  18. // deno-lint-ignore no-explicit-any
  19. (globalThis as any).HTMLElement = win.HTMLElement;
  20. // deno-lint-ignore no-explicit-any
  21. (globalThis as any).HTMLInputElement = win.HTMLInputElement;
  22. // deno-lint-ignore no-explicit-any
  23. (globalThis as any).HTMLTextAreaElement = win.HTMLTextAreaElement;
  24. // deno-lint-ignore no-explicit-any
  25. (globalThis as any).HTMLButtonElement = win.HTMLButtonElement;
  26. // deno-lint-ignore no-explicit-any
  27. (globalThis as any).Event = win.Event;
  28. // deno-lint-ignore no-explicit-any
  29. (globalThis as any).CustomEvent = win.CustomEvent;
  30. // deno-lint-ignore no-explicit-any
  31. (globalThis as any).MouseEvent = win.MouseEvent;
  32. // deno-lint-ignore no-explicit-any
  33. (globalThis as any).InputEvent = win.InputEvent;
  34. // deno-lint-ignore no-explicit-any
  35. (globalThis as any).Node = win.Node;
  36. // deno-lint-ignore no-explicit-any
  37. (globalThis as any).requestAnimationFrame = win.requestAnimationFrame.bind(win);
  38. // deno-lint-ignore no-explicit-any
  39. (globalThis as any).cancelAnimationFrame = win.cancelAnimationFrame.bind(win);
  40. // deno-lint-ignore no-explicit-any
  41. (globalThis as any).MutationObserver = win.MutationObserver;