-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
/
runtime_module_directories.test.js
67 lines (58 loc) · 1.76 KB
/
runtime_module_directories.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
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
'use strict';
const path = require('path');
const moduleDirectories = ['module_dir'];
let createRuntime;
let rootDir;
describe('Runtime', () => {
beforeEach(() => {
rootDir = path.resolve(path.dirname(__filename), 'test_root');
createRuntime = require('createRuntime');
});
it('uses configured moduleDirectories', () =>
createRuntime(__filename, {
moduleDirectories,
}).then(runtime => {
const exports = runtime.requireModule(
runtime.__mockRootPath,
'module_dir_module',
);
expect(exports).toBeDefined();
}));
it('resolves packages', () =>
createRuntime(__filename, {
moduleDirectories,
}).then(runtime => {
const exports = runtime.requireModule(
runtime.__mockRootPath,
'my-module',
);
expect(exports.isNodeModule).toEqual(true);
}));
it('finds closest module from moduleDirectories', () =>
createRuntime(__filename, {moduleDirectories}).then(runtime => {
const exports = runtime.requireModule(
path.join(rootDir, 'subdir2', 'my_module.js'),
'module_dir_module',
);
expect(exports.modulePath).toEqual(
'subdir2/module_dir/module_dir_module.js',
);
}));
it('only checks the configured directories', () =>
createRuntime(__filename, {
moduleDirectories,
}).then(runtime => {
expect(() => {
runtime.requireModule(runtime.__mockRootPath, 'not-a-haste-package');
}).toThrow(
new Error("Cannot find module 'not-a-haste-package' from 'root.js'"),
);
}));
});