From a00ca4cca4adbb957637f5d9b9eaf52a7addf038 Mon Sep 17 00:00:00 2001 From: Benjamin Armintor Date: Sun, 2 Feb 2025 15:52:43 -0500 Subject: [PATCH] TEMP: Jest/JSDOM does not yet implement core JS behaviors from Node 17 --- __tests__/utils/PatchedJSDOMEnvironment.js | 16 ++++++++++++++++ jest.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 __tests__/utils/PatchedJSDOMEnvironment.js diff --git a/__tests__/utils/PatchedJSDOMEnvironment.js b/__tests__/utils/PatchedJSDOMEnvironment.js new file mode 100644 index 000000000..8e4146d0f --- /dev/null +++ b/__tests__/utils/PatchedJSDOMEnvironment.js @@ -0,0 +1,16 @@ +import JSDOMEnvironment from 'jest-environment-jsdom'; + +/** + * JSDOM has a documented issue re: missing support of core JS available since Node 17 + * e.g. https://github.com/jsdom/jsdom/issues/1721 + * e.g. https://github.com/jsdom/jsdom/issues/3363 + */ +export default class PatchedJSDOMEnvironment extends JSDOMEnvironment { + /** */ + constructor(...args) { + super(...args); + + // delegate to node for structuredClone + this.global.structuredClone = structuredClone; + } +} diff --git a/jest.json b/jest.json index faff0ca3b..76d4b4049 100644 --- a/jest.json +++ b/jest.json @@ -37,7 +37,7 @@ "transformIgnorePatterns": [ "/node_modules/(?!@react-dnd|react-dnd|dnd-core|react-dnd-html5-backend|dnd-multi-backend|rdndmb-html5-to-touch|react-mosaic-component2|lodash-es)" ], - "testEnvironment": "jsdom" + "testEnvironment": "/__tests__/utils/PatchedJSDOMEnvironment.js" }, { "displayName": "integration", "moduleDirectories": [