From b4b99c483dee6c1a6cfd5d0168005addc3daeac4 Mon Sep 17 00:00:00 2001 From: Gustaf Dalemar Date: Fri, 24 Feb 2017 15:12:43 +0100 Subject: [PATCH] Add test for when overriding default resolver --- .../src/__mocks__/userResolver.js | 13 ++++++++ .../src/__tests__/fixtures/module.js | 11 +++++++ .../{__test__ => __tests__}/resolve-test.js | 32 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 packages/jest-resolve/src/__mocks__/userResolver.js create mode 100644 packages/jest-resolve/src/__tests__/fixtures/module.js rename packages/jest-resolve/src/{__test__ => __tests__}/resolve-test.js (56%) diff --git a/packages/jest-resolve/src/__mocks__/userResolver.js b/packages/jest-resolve/src/__mocks__/userResolver.js new file mode 100644 index 000000000000..49021cf0ed77 --- /dev/null +++ b/packages/jest-resolve/src/__mocks__/userResolver.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. +*/ + +'use strict'; + +module.exports = function userResolver(path, options) { + return require('./module'); +}; diff --git a/packages/jest-resolve/src/__tests__/fixtures/module.js b/packages/jest-resolve/src/__tests__/fixtures/module.js new file mode 100644 index 000000000000..4b2ba3aed819 --- /dev/null +++ b/packages/jest-resolve/src/__tests__/fixtures/module.js @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. +*/ + +'use strict'; + +module.exports = 42; diff --git a/packages/jest-resolve/src/__test__/resolve-test.js b/packages/jest-resolve/src/__tests__/resolve-test.js similarity index 56% rename from packages/jest-resolve/src/__test__/resolve-test.js rename to packages/jest-resolve/src/__tests__/resolve-test.js index 2ee2826fe3eb..95caa1144a76 100644 --- a/packages/jest-resolve/src/__test__/resolve-test.js +++ b/packages/jest-resolve/src/__tests__/resolve-test.js @@ -10,6 +10,7 @@ 'use strict'; +const path = require('path'); const ModuleMap = require('jest-haste-map').ModuleMap; const Resolver = require('../'); @@ -37,3 +38,34 @@ describe('isCoreModule', () => { expect(isCore).toEqual(false); }); }); + +describe('findNodeModule', () => { + it('is possible to override the default resolver', () => { + const nodePaths = process.env.NODE_PATH + ? process.env.NODE_PATH.split(path.delimiter) + : null; + + jest.mock('../__mocks__/userResolver'); + const userResolver = require('../__mocks__/userResolver'); + userResolver.mockImplementation(() => require('./fixtures/module')); + + const newPath = Resolver.findNodeModule('test', { + basedir: '/', + browser: true, + extensions: ['js'], + moduleDirectory: ['node_modules'], + paths: ['/something'], + resolver: require.resolve('../__mocks__/userResolver'), + }); + + expect(newPath).toBe(require('./fixtures/module')); + expect(userResolver.mock.calls[0][0]).toBe('test'); + expect(userResolver.mock.calls[0][1]).toEqual({ + basedir: '/', + browser: true, + extensions: ['js'], + moduleDirectory: ['node_modules'], + paths: (nodePaths || []).concat(['/something']), + }); + }); +});