setupTests.ts 982 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // vitest.setup.ts
  2. import "vitest-canvas-mock";
  3. import "@testing-library/jest-dom";
  4. import { vi } from "vitest";
  5. import polyfill from "./packages/excalidraw/polyfill";
  6. import { testPolyfills } from "./packages/excalidraw/tests/helpers/polyfills";
  7. Object.assign(globalThis, testPolyfills);
  8. require("fake-indexeddb/auto");
  9. polyfill();
  10. Object.defineProperty(window, "matchMedia", {
  11. writable: true,
  12. value: vi.fn().mockImplementation((query) => ({
  13. matches: false,
  14. media: query,
  15. onchange: null,
  16. addListener: vi.fn(), // deprecated
  17. removeListener: vi.fn(), // deprecated
  18. addEventListener: vi.fn(),
  19. removeEventListener: vi.fn(),
  20. dispatchEvent: vi.fn(),
  21. })),
  22. });
  23. vi.mock("nanoid", () => {
  24. return {
  25. nanoid: vi.fn(() => "test-id"),
  26. };
  27. });
  28. // ReactDOM is located inside index.tsx file
  29. // as a result, we need a place for it to render into
  30. const element = document.createElement("div");
  31. element.id = "root";
  32. document.body.appendChild(element);