diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e26a16c58b4..80d3a97e863d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### Chore & Maintenance +- `[jest-runtime]` [**BREAKING**] Remove long-deprecated `require.requireActual` and `require.requireMock` methods ([#9854](https://github.com/facebook/jest/pull/9854)) - `[expect, jest-mock, pretty-format]` [**BREAKING**] Remove `build-es5` from package ([#9945](https://github.com/facebook/jest/pull/9945)) ### Performance diff --git a/packages/jest-environment/src/index.ts b/packages/jest-environment/src/index.ts index 42ca2979c3bd..f48f1131ac39 100644 --- a/packages/jest-environment/src/index.ts +++ b/packages/jest-environment/src/index.ts @@ -58,11 +58,6 @@ export declare class JestEnvironment { export type Module = NodeModule; -export interface LocalModuleRequire extends NodeRequire { - requireActual(moduleName: string): unknown; - requireMock(moduleName: string): unknown; -} - // TODO: Move to some separate package export interface Jest { /** diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index 6ce7e444fae9..d4f8ab691942 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -184,46 +184,6 @@ describe('dependencyExtractor', () => { expect(extract(code)).toEqual(new Set(['dep1', 'dep2', 'dep3'])); }); - it('should extract dependencies from `require.requireActual` calls', () => { - const code = ` - // Good - require.requireActual('dep1'); - const dep2 = require.requireActual( - "dep2", - ); - if (require.requireActual(\`dep3\`).cond) {} - require - .requireActual('dep4'); - - // Bad - ${COMMENT_NO_NEG_LB} foo . require.requireActual('inv1') - xrequire.requireActual('inv2'); - require.requireActualx('inv3'); - require.requireActual('inv4', 'inv5'); - `; - expect(extract(code)).toEqual(new Set(['dep1', 'dep2', 'dep3', 'dep4'])); - }); - - it('should extract dependencies from `require.requireMock` calls', () => { - const code = ` - // Good - require.requireMock('dep1'); - const dep2 = require.requireMock( - "dep2", - ); - if (require.requireMock(\`dep3\`).cond) {} - require - .requireMock('dep4'); - - // Bad - ${COMMENT_NO_NEG_LB} foo . require.requireMock('inv1') - xrequire.requireMock('inv2'); - require.requireMockx('inv3'); - require.requireMock('inv4', 'inv5'); - `; - expect(extract(code)).toEqual(new Set(['dep1', 'dep2', 'dep3', 'dep4'])); - }); - it('should extract dependencies from `jest.requireActual` calls', () => { const code = ` // Good diff --git a/packages/jest-haste-map/src/lib/dependencyExtractor.ts b/packages/jest-haste-map/src/lib/dependencyExtractor.ts index d1aa4445ff3c..e99a513701ec 100644 --- a/packages/jest-haste-map/src/lib/dependencyExtractor.ts +++ b/packages/jest-haste-map/src/lib/dependencyExtractor.ts @@ -63,7 +63,6 @@ const IMPORT_OR_EXPORT_RE = createRegExp( const JEST_EXTENSIONS_RE = createRegExp( [ ...functionCallStart( - 'require\\s*\\.\\s*(?:requireActual|requireMock)', 'jest\\s*\\.\\s*(?:requireActual|requireMock|genMockFromModule)', ), CAPTURE_STRING_LITERAL(1), diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 3b7b5003d1e7..1cf4cb0c0c55 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -23,7 +23,6 @@ import type {Config, Global} from '@jest/types'; import type { Jest, JestEnvironment, - LocalModuleRequire, Module, ModuleWrapper, } from '@jest/environment'; @@ -1314,7 +1313,7 @@ class Runtime { private _createRequireImplementation( from: InitialModule, options?: InternalModuleOptions, - ): LocalModuleRequire { + ): NodeRequire { // TODO: somehow avoid having to type the arguments - they should come from `NodeRequire/LocalModuleRequire.resolve` const resolve = (moduleName: string, options: ResolveOptions) => this._requireResolve(from.filename, moduleName, options); @@ -1324,13 +1323,8 @@ class Runtime { const moduleRequire = (options?.isInternalModule ? (moduleName: string) => this.requireInternalModule(from.filename, moduleName) - : this.requireModuleOrMock.bind( - this, - from.filename, - )) as LocalModuleRequire; + : this.requireModuleOrMock.bind(this, from.filename)) as NodeRequire; moduleRequire.extensions = Object.create(null); - moduleRequire.requireActual = this.requireActual.bind(this, from.filename); - moduleRequire.requireMock = this.requireMock.bind(this, from.filename); moduleRequire.resolve = resolve; moduleRequire.cache = (() => { // TODO: consider warning somehow that this does nothing. We should support deletions, anyways