From 98af953d897365e832a1b8bb239ebb3aa2e7f2ab Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Thu, 26 Jan 2023 11:49:07 +0100 Subject: [PATCH 1/2] fix(runtime): handle missing `replaceProperty` --- packages/jest-runtime/src/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index ae0f8bde2ca9..f050d0d01e58 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -2319,9 +2319,14 @@ export default class Runtime { 'Your test environment does not support `mocked`, please update it.', ); }); - const replaceProperty = this._moduleMocker.replaceProperty.bind( - this._moduleMocker, - ); + const replaceProperty = + typeof this._moduleMocker.replaceProperty === 'function' + ? this._moduleMocker.replaceProperty.bind(this._moduleMocker) + : () => { + throw new Error( + 'Your test environment does not support `jest.replaceProperty` - please ensure its Jest dependencies are updated to version 29.4 or later', + ); + }; const setTimeout = (timeout: number) => { this._environment.global[testTimeoutSymbol] = timeout; From a4db2c22c189f5175aec8d9c872a85b00b7c6257 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Thu, 26 Jan 2023 11:50:39 +0100 Subject: [PATCH 2/2] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca3b22b37435..fb7169ac0a1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Fixes - `[@jest/expect-utils]` `toMatchObject` diffs should include `Symbol` properties ([#13810](https://github.com/facebook/jest/pull/13810)) +- `[jest-runtime]` Handle missing `replaceProperty` ([#13823](https://github.com/facebook/jest/pull/13823)) ### Chore & Maintenance