Skip to content

Commit

Permalink
fix: update jest polyfill and setup
Browse files Browse the repository at this point in the history
  • Loading branch information
grikomsn committed Dec 11, 2023
1 parent dbf3892 commit 46396a6
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 6 deletions.
1 change: 1 addition & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const customJestConfig = {
isows: "<rootDir>/node_modules/isows/_cjs/index.js", // https://github.com/wagmi-dev/viem/issues/1329
tinykeys: "<rootDir>/node_modules/tinykeys/dist/tinykeys.js",
},
setupFiles: ["<rootDir>/jest.polyfills.js"],
setupFilesAfterEnv: ["<rootDir>/jest.setup.js"],
testEnvironment: "jest-environment-jsdom",
testPathIgnorePatterns: [
Expand Down
28 changes: 28 additions & 0 deletions jest.polyfills.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// https://mswjs.io/docs/faq/#referenceerror-fetch-is-not-defined-in-nodejs
// https://mswjs.io/docs/faq/#requestresponsetextencoder-is-not-defined-jest

const { ReadableStream } = require("stream/web");
const { clearImmediate, setImmediate } = require("timers");
const { TextDecoder, TextEncoder } = require("util");

Object.defineProperties(global, {
ReadableStream: { value: ReadableStream },
TextDecoder: { value: TextDecoder },
TextEncoder: { value: TextEncoder },
clearImmediate: { value: clearImmediate },
setImmediate: { value: setImmediate },
});

const { Blob, File } = require("buffer");
const { fetch, FormData, Headers, Request, Response } = require("undici");

Object.defineProperties(global, {
Blob: { value: Blob },
File: { value: File },
FormData: { value: FormData },
Headers: { value: Headers },
Request: { value: Request },
ResizeObserver: { value: require("resize-observer-polyfill") },
Response: { value: Response },
fetch: { value: fetch, writable: true },
});
7 changes: 1 addition & 6 deletions jest.setup.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import "@testing-library/jest-dom/extend-expect";

global.ResizeObserver = require("resize-observer-polyfill");

// eslint-disable-next-line @typescript-eslint/no-var-requires
global.TextEncoder = require("util").TextEncoder;
import "@testing-library/jest-dom";

// suppress zustand deprecation notice to clear out logs
global.console.warn = (...args) =>
Expand Down
20 changes: 20 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
"react-dom": "^18.2.0",
"tailwindcss": "^3.3.6",
"tinykeys": "^2.1.0",
"undici": "^6.0.1",
"viem": "^1.19.13",
"wagmi": "^1.4.10",
"zod": "^3.22.4",
Expand Down

0 comments on commit 46396a6

Please sign in to comment.