Work around jsdom not providing TextEncoder
This commit is contained in:
@@ -122,7 +122,7 @@
|
|||||||
"vite-plugin-svgr": "^3.2.0"
|
"vite-plugin-svgr": "^3.2.0"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"testEnvironment": "jsdom",
|
"testEnvironment": "./test/environment.ts",
|
||||||
"testMatch": [
|
"testMatch": [
|
||||||
"<rootDir>/test/**/*-test.[jt]s?(x)"
|
"<rootDir>/test/**/*-test.[jt]s?(x)"
|
||||||
],
|
],
|
||||||
|
|||||||
18
test/environment.ts
Normal file
18
test/environment.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import { TextEncoder } from "util";
|
||||||
|
import JSDOMEnvironment_, {
|
||||||
|
TestEnvironment as TestEnvironment_,
|
||||||
|
} from "jest-environment-jsdom";
|
||||||
|
import { JestEnvironmentConfig, EnvironmentContext } from "@jest/environment";
|
||||||
|
|
||||||
|
// This is a patched version of jsdom that adds TextEncoder, as a workaround for
|
||||||
|
// https://github.com/jsdom/jsdom/issues/2524
|
||||||
|
// Once that issue is resolved, this custom environment file can be deleted
|
||||||
|
export default class JSDOMEnvironment extends JSDOMEnvironment_ {
|
||||||
|
constructor(config: JestEnvironmentConfig, context: EnvironmentContext) {
|
||||||
|
super(config, context);
|
||||||
|
this.global.TextEncoder ??= TextEncoder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const TestEnvironment =
|
||||||
|
TestEnvironment_ === JSDOMEnvironment_ ? JSDOMEnvironment : TestEnvironment_;
|
||||||
Reference in New Issue
Block a user