Skip to content

Commit 3f4661f

Browse files
authored
feat: pass defaultResolver into custom resolvers (#7714)
1 parent 8e69441 commit 3f4661f

File tree

7 files changed

+24
-10
lines changed

7 files changed

+24
-10
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
### Features
44

5+
- `[jest-resolve]`: Pass default resolver into custom resolvers ([#7714](https://github.com/facebook/jest/pull/7714))
6+
57
### Fixes
68

79
- `[jest-cli]` Break dependency cycle when using Jest programmatically ([#7707](https://github.com/facebook/jest/pull/7707))

e2e/__tests__/__snapshots__/moduleNameMapper.test.js.snap

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ FAIL __tests__/index.js
3030
12 | module.exports = () => 'test';
3131
13 |
3232
33-
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:435:17)
33+
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:436:17)
3434
at Object.require (index.js:10:1)
3535
`;

e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.js.snap

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ FAIL __tests__/test.js
3333
| ^
3434
4 |
3535
36-
at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:202:17)
36+
at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:203:17)
3737
at Object.require (index.js:3:18)
3838
`;

packages/jest-resolve/src/__tests__/resolve.test.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88

99
'use strict';
1010

11-
jest.mock('../__mocks__/userResolver');
11+
import fs from 'fs';
12+
import path from 'path';
13+
import {ModuleMap} from 'jest-haste-map';
14+
// eslint-disable-next-line import/default
15+
import Resolver from '../';
16+
import userResolver from '../__mocks__/userResolver';
17+
import nodeModulesPaths from '../nodeModulesPaths';
18+
import defaultResolver from '../defaultResolver';
1219

13-
const fs = require('fs');
14-
const path = require('path');
15-
const ModuleMap = require('jest-haste-map').ModuleMap;
16-
const Resolver = require('../');
17-
const userResolver = require('../__mocks__/userResolver');
18-
const nodeModulesPaths = require('../nodeModulesPaths').default;
20+
jest.mock('../__mocks__/userResolver');
1921

2022
beforeEach(() => {
2123
userResolver.mockClear();
@@ -69,12 +71,14 @@ describe('findNodeModule', () => {
6971

7072
expect(newPath).toBe('module');
7173
expect(userResolver.mock.calls[0][0]).toBe('test');
72-
expect(userResolver.mock.calls[0][1]).toEqual({
74+
expect(userResolver.mock.calls[0][1]).toStrictEqual({
7375
basedir: '/',
7476
browser: true,
77+
defaultResolver,
7578
extensions: ['js'],
7679
moduleDirectory: ['node_modules'],
7780
paths: (nodePaths || []).concat(['/something']),
81+
rootDir: undefined,
7882
});
7983
});
8084
});

packages/jest-resolve/src/defaultResolver.js

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import nodeModulesPaths from './nodeModulesPaths';
1919
type ResolverOptions = {|
2020
basedir: Path,
2121
browser?: boolean,
22+
defaultResolver: typeof defaultResolver,
2223
extensions?: Array<string>,
2324
moduleDirectory?: Array<string>,
2425
paths?: ?Array<Path>,
@@ -33,6 +34,7 @@ export default function defaultResolver(
3334

3435
return resolve(path, {
3536
basedir: options.basedir,
37+
defaultResolver,
3638
extensions: options.extensions,
3739
moduleDirectory: options.moduleDirectory,
3840
paths: options.paths,

packages/jest-resolve/src/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class Resolver {
103103
return resolver(path, {
104104
basedir: options.basedir,
105105
browser: options.browser,
106+
defaultResolver,
106107
extensions: options.extensions,
107108
moduleDirectory: options.moduleDirectory,
108109
paths: paths ? (nodePaths || []).concat(paths) : nodePaths,

yarn.lock

+5
Original file line numberDiff line numberDiff line change
@@ -3553,6 +3553,11 @@ core-js@^2.2.0, core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.7:
35533553
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
35543554
integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==
35553555

3556+
core-js@^2.5.0:
3557+
version "2.6.3"
3558+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
3559+
integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==
3560+
35563561
[email protected], core-util-is@~1.0.0:
35573562
version "1.0.2"
35583563
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"

0 commit comments

Comments
 (0)