diff --git a/packages/jest-runtime/src/__tests__/runtime_require_cache.test.js b/packages/jest-runtime/src/__tests__/runtime_require_cache.test.js index ec06833c9d04..aab7ebdea903 100644 --- a/packages/jest-runtime/src/__tests__/runtime_require_cache.test.js +++ b/packages/jest-runtime/src/__tests__/runtime_require_cache.test.js @@ -21,8 +21,13 @@ describe('Runtime require.cache', () => { runtime.__mockRootPath, 'RegularModule', ).module; + const id = regularModule.id; + const cache = regularModule.require.cache; - expect(regularModule.require.cache[regularModule.id]).toBe(regularModule); + expect(cache[id]).toBe(regularModule); + expect(id in cache).toBeTruthy(); + expect(Object.keys(cache).includes(id)).toBeTruthy(); + expect(Object.getOwnPropertyNames(cache).includes(id)).toBeTruthy(); })); it('require.cache is tolerant readonly', () => diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index d516e903d1e6..af6cc31ef0ec 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -1286,8 +1286,15 @@ class Runtime { deleteProperty: notPermittedMethod, get: (_target, key) => typeof key === 'string' ? this._moduleRegistry.get(key) : undefined, + getOwnPropertyDescriptor() { + return { + configurable: true, + enumerable: true, + }; + }, has: (_target, key) => typeof key === 'string' && this._moduleRegistry.has(key), + ownKeys: () => Array.from(this._moduleRegistry.keys()), set: notPermittedMethod, }); })();