I'm running tests with jest
in a simple NodeJS app that uses typescript. My test is throwing an error: ReferenceError: structuredClone is not defined
.
I'm not getting any linter errors and the code compiles fine normally.
const variableForValidation = structuredClone(variableForValidationUncloned);
package.json:
"dependencies": {
...
},
"devDependencies": {
"@types/jest": "^29.0.0",
"@types/node": "^18.7.15",
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"eslint": "^8.23.0",
"jest": "^28.0.1",
"nodemon": "^2.0.19",
"serverless-plugin-typescript": "^2.1.2",
"ts-jest": "^28.0.8",
"ts-node": "^10.9.1",
"typescript": "^4.8.2"
}
This github issue suggests to me that the issue has been resolved: https://github.com/facebook/jest/issues/12628 - or perhaps I'm misunderstanding?
I've seen a similar Stack question but using Mocha: mocha not recognizing structuredClone is not defined
structuredClone
was added in Node 17.If you can't update, the
JSON
hack (stringify then parse) works, but has some shortcomings that might be relevant to you:Edit:
I recently learned about the json-stringify-safe, that helps with the circular issue.