PATH:
usr
/
local
/
lib
/
node_modules
/
bower
/
lib
/
node_modules
/
resolve
/
test
var path = require('path'); var fs = require('fs'); var test = require('tape'); var resolve = require('../'); var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink'); try { fs.unlinkSync(symlinkDir); } catch (err) {} try { fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir'); } catch (err) { // if fails then it is probably on Windows and lets try to create a junction fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction'); } test('symlink', function (t) { t.plan(1); resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) { if (err) t.fail(err); t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); }); }); test('sync symlink when preserveSymlinks = true', function (t) { t.plan(4); resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) { t.ok(err, 'there is an error'); t.notOk(res, 'no result'); t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); t.equal( err && err.message, 'Cannot find module \'foo\' from \'' + symlinkDir + '\'', 'can not find nonexistent module' ); }); }); test('sync symlink', function (t) { var start = new Date(); t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); t.ok(new Date() - start < 50, 'resolve.sync timedout'); t.end(); }); test('sync symlink when preserveSymlinks = true', function (t) { t.throws(function () { resolve.sync('foo', { basedir: symlinkDir }); }, /Cannot find module 'foo'/); t.end(); });
[-] core.js
[edit]
[+]
resolver
[-] mock_sync.js
[edit]
[-] pathfilter.js
[edit]
[-] node_path.js
[edit]
[+]
..
[-] precedence.js
[edit]
[-] faulty_basedir.js
[edit]
[-] module_dir.js
[edit]
[-] dotdot.js
[edit]
[+]
dotdot
[-] mock.js
[edit]
[-] subdirs.js
[edit]
[-] node-modules-paths.js
[edit]
[+]
module_dir
[+]
node_path
[-] filter.js
[edit]
[-] filter_sync.js
[edit]
[-] resolver.js
[edit]
[-] resolver_sync.js
[edit]
[-] symlinks.js
[edit]
[+]
pathfilter
[+]
precedence
[-] nonstring.js
[edit]