From 7f3cd83e952592a3cf7d35c0459276b8681415b4 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 21 Apr 2020 22:53:53 +0200 Subject: [PATCH] fix: remove require.requireActual --- CHANGELOG.md | 2 + packages/jest-environment/src/index.ts | 5 --- .../lib/__tests__/dependencyExtractor.test.js | 40 ------------------- .../src/lib/dependencyExtractor.ts | 1 - packages/jest-runtime/src/index.ts | 10 +---- 5 files changed, 4 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02728ab400e6..47eb385781ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ ### Chore & Maintenance +- `[jest-runtime]` [**BREAKING**] Remove long-deprecated `require.requireActual` and `require.requireMock` methods ([#9854](https://github.com/facebook/jest/pull/9854)) + ### Performance ## 25.4.0 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 92a46b78b914..92c37fbb3ea3 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -23,7 +23,6 @@ import type {Config} from '@jest/types'; import type { Jest, JestEnvironment, - LocalModuleRequire, Module, ModuleWrapper, } from '@jest/environment'; @@ -1250,7 +1249,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); @@ -1260,13 +1259,8 @@ class Runtime { const moduleRequire = (options && 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 = (() => { const notPermittedMethod = () => {