diff --git a/CHANGELOG.md b/CHANGELOG.md index 91a342f13fde..7b9af485332e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ - `[jest-resolve-dependencies]`: Remove internal peer dependencies ([#8215](https://github.com/facebook/jest/pull/8215)) - `[jest-resolve]`: Remove internal peer dependencies ([#8215](https://github.com/facebook/jest/pull/8215)) - `[jest-snapshot]`: Remove internal peer dependencies ([#8215](https://github.com/facebook/jest/pull/8215)) +- `[jest-resolve]` Fix requireActual with moduleNameMapper ([#8210](https://github.com/facebook/jest/pull/8210)) ### Chore & Maintenance diff --git a/e2e/__tests__/__snapshots__/moduleNameMapper.test.ts.snap b/e2e/__tests__/__snapshots__/moduleNameMapper.test.ts.snap index 35faae772b9c..86fa29655c31 100644 --- a/e2e/__tests__/__snapshots__/moduleNameMapper.test.ts.snap +++ b/e2e/__tests__/__snapshots__/moduleNameMapper.test.ts.snap @@ -30,6 +30,6 @@ FAIL __tests__/index.js 12 | module.exports = () => 'test'; 13 | - at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:473:17) + at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:471:17) at Object.require (index.js:10:1) `; diff --git a/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.ts.snap b/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.ts.snap index e71f3bc23997..131e4b0ba283 100644 --- a/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.ts.snap +++ b/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.ts.snap @@ -33,6 +33,6 @@ FAIL __tests__/test.js | ^ 4 | - at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:231:17) + at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:229:17) at Object.require (index.js:3:18) `; diff --git a/packages/jest-resolve/src/index.ts b/packages/jest-resolve/src/index.ts index 857325fc8d85..169cccb0cc33 100644 --- a/packages/jest-resolve/src/index.ts +++ b/packages/jest-resolve/src/index.ts @@ -195,11 +195,9 @@ class Resolver { options?: Resolver.ResolveModuleConfig, ): Config.Path { const dirname = path.dirname(from); - const module = this.resolveModuleFromDirIfExists( - dirname, - moduleName, - options, - ); + const module = + this.resolveStubModuleName(from, moduleName) || + this.resolveModuleFromDirIfExists(dirname, moduleName, options); if (module) return module; // 5. Throw an error if the module could not be found. `resolve.sync` only diff --git a/packages/jest-runtime/src/__tests__/runtime_require_actual.test.js b/packages/jest-runtime/src/__tests__/runtime_require_actual.test.js index 22510ab3e57d..a67f92fe1213 100644 --- a/packages/jest-runtime/src/__tests__/runtime_require_actual.test.js +++ b/packages/jest-runtime/src/__tests__/runtime_require_actual.test.js @@ -23,4 +23,17 @@ describe('Runtime requireActual', () => { ); expect(exports.isManualMockModule).toBe(false); })); + + test('requireActual with moduleNameMapper', () => + createRuntime(__filename, { + moduleNameMapper: { + '^testMapped/(.*)': '/mapped_dir/$1', + }, + }).then(runtime => { + const exports = runtime.requireActual( + runtime.__mockRootPath, + 'testMapped/moduleInMapped', + ); + expect(exports).toBe('in_mapped'); + })); });