forked from jestjs/jest
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathresolve-test.js
77 lines (68 loc) · 2.44 KB
/
resolve-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**
* 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.
*
* @emails oncall+jsinfra
*/
'use strict';
const fs = require('fs');
const path = require('path');
const ModuleMap = require('jest-haste-map').ModuleMap;
const Resolver = require('../');
describe('isCoreModule', () => {
it('returns false if `hasCoreModules` is false.', () => {
const moduleMap = new ModuleMap();
const resolver = new Resolver(moduleMap, {
hasCoreModules: false,
});
const isCore = resolver.isCoreModule('assert');
expect(isCore).toEqual(false);
});
it('returns true if `hasCoreModules` is true and `moduleName` is a core module.', () => {
const moduleMap = new ModuleMap();
const resolver = new Resolver(moduleMap, {});
const isCore = resolver.isCoreModule('assert');
expect(isCore).toEqual(true);
});
it('returns false if `hasCoreModules` is true and `moduleName` is not a core module.', () => {
const moduleMap = new ModuleMap();
const resolver = new Resolver(moduleMap, {});
const isCore = resolver.isCoreModule('not-a-core-module');
expect(isCore).toEqual(false);
});
});
describe('findNodeModule', () => {
it('is possible to override the default resolver', () => {
const cwd = process.cwd();
const resolvedCwd = fs.realpathSync(cwd) || cwd;
const nodePaths = process.env.NODE_PATH
? process.env.NODE_PATH
.split(path.delimiter)
.filter(Boolean)
.map(p => path.resolve(resolvedCwd, p))
: null;
jest.mock('../__mocks__/userResolver');
const userResolver = require('../__mocks__/userResolver');
userResolver.mockImplementation(() => 'module');
const newPath = Resolver.findNodeModule('test', {
basedir: '/',
browser: true,
extensions: ['js'],
moduleDirectory: ['node_modules'],
paths: ['/something'],
resolver: require.resolve('../__mocks__/userResolver'),
});
expect(newPath).toBe('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']),
});
});
});