Import the supplied management frontend, including request encryption, withdrawal updates, and vendored dependencies. Use incoming versions for overlapping source files and retain existing environment configuration absent from the supplied directory.
71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
var fs = require('fs');
|
|
var path = require('path');
|
|
var test = require('tape');
|
|
var resolve = require('../');
|
|
|
|
test('$NODE_PATH', function (t) {
|
|
t.plan(8);
|
|
|
|
function isDir(dir, cb) {
|
|
if (dir === '/node_path' || dir === 'node_path/x') {
|
|
return cb(null, true);
|
|
}
|
|
fs.stat(dir, function (err, stat) {
|
|
if (!err) {
|
|
return cb(null, stat.isDirectory());
|
|
}
|
|
if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
|
|
return cb(err);
|
|
});
|
|
}
|
|
|
|
resolve('aaa', {
|
|
paths: [
|
|
path.join(__dirname, '/node_path/x'),
|
|
path.join(__dirname, '/node_path/y')
|
|
],
|
|
basedir: __dirname,
|
|
isDirectory: isDir
|
|
}, function (err, res) {
|
|
t.error(err);
|
|
t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves');
|
|
});
|
|
|
|
resolve('bbb', {
|
|
paths: [
|
|
path.join(__dirname, '/node_path/x'),
|
|
path.join(__dirname, '/node_path/y')
|
|
],
|
|
basedir: __dirname,
|
|
isDirectory: isDir
|
|
}, function (err, res) {
|
|
t.error(err);
|
|
t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves');
|
|
});
|
|
|
|
resolve('ccc', {
|
|
paths: [
|
|
path.join(__dirname, '/node_path/x'),
|
|
path.join(__dirname, '/node_path/y')
|
|
],
|
|
basedir: __dirname,
|
|
isDirectory: isDir
|
|
}, function (err, res) {
|
|
t.error(err);
|
|
t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves');
|
|
});
|
|
|
|
// ensure that relative paths still resolve against the regular `node_modules` correctly
|
|
resolve('tap', {
|
|
paths: [
|
|
'node_path'
|
|
],
|
|
basedir: path.join(__dirname, 'node_path/x'),
|
|
isDirectory: isDir
|
|
}, function (err, res) {
|
|
var root = require('tap/package.json').main; // eslint-disable-line global-require
|
|
t.error(err);
|
|
t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves');
|
|
});
|
|
});
|