diff --git a/CHANGELOG.md b/CHANGELOG.md index bfe5dd6e1e43..3357e04983f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Features +- `[jest-resolve]`: Pass default resolver into custom resolvers ([#7714](https://github.com/facebook/jest/pull/7714)) + ### Fixes ### Chore & Maintenance diff --git a/e2e/__tests__/__snapshots__/moduleNameMapper.test.js.snap b/e2e/__tests__/__snapshots__/moduleNameMapper.test.js.snap index 9609d706b96c..312abe793d4a 100644 --- a/e2e/__tests__/__snapshots__/moduleNameMapper.test.js.snap +++ b/e2e/__tests__/__snapshots__/moduleNameMapper.test.js.snap @@ -30,6 +30,6 @@ FAIL __tests__/index.js 12 | module.exports = () => 'test'; 13 | - at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:435:17) + at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:436:17) at Object.require (index.js:10:1) `; diff --git a/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.js.snap b/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.js.snap index 8bb20a9f7d29..407b4c3bac23 100644 --- a/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.js.snap +++ b/e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.js.snap @@ -33,6 +33,6 @@ FAIL __tests__/test.js | ^ 4 | - at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:202:17) + at Resolver.resolveModule (../../packages/jest-resolve/build/index.js:203:17) at Object.require (index.js:3:18) `; diff --git a/packages/jest-resolve/src/__tests__/resolve.test.js b/packages/jest-resolve/src/__tests__/resolve.test.js index fbebf400f7bc..d074456ca2ad 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.js +++ b/packages/jest-resolve/src/__tests__/resolve.test.js @@ -8,14 +8,16 @@ 'use strict'; -jest.mock('../__mocks__/userResolver'); +import fs from 'fs'; +import path from 'path'; +import {ModuleMap} from 'jest-haste-map'; +// eslint-disable-next-line import/default +import Resolver from '../'; +import userResolver from '../__mocks__/userResolver'; +import nodeModulesPaths from '../nodeModulesPaths'; +import defaultResolver from '../defaultResolver'; -const fs = require('fs'); -const path = require('path'); -const ModuleMap = require('jest-haste-map').ModuleMap; -const Resolver = require('../'); -const userResolver = require('../__mocks__/userResolver'); -const nodeModulesPaths = require('../nodeModulesPaths').default; +jest.mock('../__mocks__/userResolver'); beforeEach(() => { userResolver.mockClear(); @@ -69,12 +71,14 @@ describe('findNodeModule', () => { expect(newPath).toBe('module'); expect(userResolver.mock.calls[0][0]).toBe('test'); - expect(userResolver.mock.calls[0][1]).toEqual({ + expect(userResolver.mock.calls[0][1]).toStrictEqual({ basedir: '/', browser: true, + defaultResolver, extensions: ['js'], moduleDirectory: ['node_modules'], paths: (nodePaths || []).concat(['/something']), + rootDir: undefined, }); }); }); diff --git a/packages/jest-resolve/src/defaultResolver.js b/packages/jest-resolve/src/defaultResolver.js index dc458ee10a90..3549bf4d1933 100644 --- a/packages/jest-resolve/src/defaultResolver.js +++ b/packages/jest-resolve/src/defaultResolver.js @@ -19,6 +19,7 @@ import nodeModulesPaths from './nodeModulesPaths'; type ResolverOptions = {| basedir: Path, browser?: boolean, + defaultResolver: typeof defaultResolver, extensions?: Array, moduleDirectory?: Array, paths?: ?Array, @@ -33,6 +34,7 @@ export default function defaultResolver( return resolve(path, { basedir: options.basedir, + defaultResolver, extensions: options.extensions, moduleDirectory: options.moduleDirectory, paths: options.paths, diff --git a/packages/jest-resolve/src/index.js b/packages/jest-resolve/src/index.js index 94784e8c0b51..9b0634026828 100644 --- a/packages/jest-resolve/src/index.js +++ b/packages/jest-resolve/src/index.js @@ -103,6 +103,7 @@ class Resolver { return resolver(path, { basedir: options.basedir, browser: options.browser, + defaultResolver, extensions: options.extensions, moduleDirectory: options.moduleDirectory, paths: paths ? (nodePaths || []).concat(paths) : nodePaths, diff --git a/yarn.lock b/yarn.lock index f372a24a1a22..41dc41561031 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3692,6 +3692,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.0, resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49" integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ== +core-js@^2.5.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49" + integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"