diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
commit | bbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch) | |
tree | c58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/resolve/test | |
parent | 003fb34971cf63466184351b4db5f7c67df4f444 (diff) |
update packages
Diffstat (limited to 'node_modules/resolve/test')
-rw-r--r-- | node_modules/resolve/test/core.js | 61 | ||||
-rw-r--r-- | node_modules/resolve/test/filter.js | 23 | ||||
-rw-r--r-- | node_modules/resolve/test/filter_sync.js | 14 | ||||
-rw-r--r-- | node_modules/resolve/test/pathfilter.js | 87 | ||||
-rw-r--r-- | node_modules/resolve/test/resolver.js | 65 | ||||
-rw-r--r-- | node_modules/resolve/test/resolver/symlinked/.npmignore | 1 | ||||
-rw-r--r-- | node_modules/resolve/test/resolver/symlinked/_/.npmignore | 1 | ||||
-rw-r--r-- | node_modules/resolve/test/resolver_sync.js | 44 | ||||
-rw-r--r-- | node_modules/resolve/test/symlinks.js | 4 |
9 files changed, 254 insertions, 46 deletions
diff --git a/node_modules/resolve/test/core.js b/node_modules/resolve/test/core.js index 1182e0c0b..33d9f3294 100644 --- a/node_modules/resolve/test/core.js +++ b/node_modules/resolve/test/core.js @@ -1,4 +1,5 @@ var test = require('tape'); +var keys = require('object-keys'); var resolve = require('../'); test('core modules', function (t) { @@ -13,15 +14,67 @@ test('core modules', function (t) { }); t.test('core list', function (st) { - st.plan(resolve.core.length); + var cores = keys(resolve.core); + st.plan(cores.length); - for (var i = 0; i < resolve.core.length; ++i) { + for (var i = 0; i < cores.length; ++i) { + var mod = cores[i]; + if (resolve.core[mod]) { + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + mod + ' supported; requiring does not throw' + ); + } else { + st.throws( + function () { require(mod); }, // eslint-disable-line no-loop-func + mod + ' not supported; requiring throws' + ); + } + } + + st.end(); + }); + + t.test('core via repl module', { skip: !resolve.core.repl }, function (st) { + var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle + if (!libs) { + st.skip('module.builtinModules does not exist'); + return st.end(); + } + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + st.ok(resolve.core[mod], mod + ' is a core module'); st.doesNotThrow( - function () { require(resolve.core[i]); }, // eslint-disable-line no-loop-func - 'requiring ' + resolve.core[i] + ' does not throw' + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' ); } + st.end(); + }); + t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) { + var libs = require('module').builtinModules; + if (!libs) { + st.skip('module.builtinModules does not exist'); + return st.end(); + } + var blacklist = [ + '_debug_agent', + 'v8/tools/tickprocessor-driver', + 'v8/tools/SourceMap', + 'v8/tools/tickprocessor', + 'v8/tools/profile' + ]; + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + if (blacklist.indexOf(mod) === -1) { + st.ok(resolve.core[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + } + } st.end(); }); diff --git a/node_modules/resolve/test/filter.js b/node_modules/resolve/test/filter.js index 51a753f16..dfc622a87 100644 --- a/node_modules/resolve/test/filter.js +++ b/node_modules/resolve/test/filter.js @@ -3,17 +3,32 @@ var test = require('tape'); var resolve = require('../'); test('filter', function (t) { - t.plan(2); + t.plan(4); var dir = path.join(__dirname, 'resolver'); + var packageFilterArgs; resolve('./baz', { basedir: dir, - packageFilter: function (pkg) { + packageFilter: function (pkg, pkgfile) { pkg.main = 'doom'; + packageFilterArgs = [pkg, pkgfile]; return pkg; } }, function (err, res, pkg) { if (err) t.fail(err); - t.equal(res, path.join(dir, 'baz/doom.js')); - t.equal(pkg.main, 'doom'); + + t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); + + var packageData = packageFilterArgs[0]; + t.equal(pkg, packageData, 'first packageFilter argument is "pkg"'); + t.equal(packageData.main, 'doom', 'package "main" was altered'); + + var packageFile = packageFilterArgs[1]; + t.equal( + packageFile, + path.join(dir, 'baz/package.json'), + 'second packageFilter argument is "pkgfile"' + ); + + t.end(); }); }); diff --git a/node_modules/resolve/test/filter_sync.js b/node_modules/resolve/test/filter_sync.js index fd4e97c28..064052e16 100644 --- a/node_modules/resolve/test/filter_sync.js +++ b/node_modules/resolve/test/filter_sync.js @@ -4,13 +4,23 @@ var resolve = require('../'); test('filter', function (t) { var dir = path.join(__dirname, 'resolver'); + var packageFilterArgs; var res = resolve.sync('./baz', { basedir: dir, - packageFilter: function (pkg) { + packageFilter: function (pkg, dir) { pkg.main = 'doom'; + packageFilterArgs = [pkg, dir]; return pkg; } }); - t.equal(res, path.join(dir, 'baz/doom.js')); + + t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); + + var packageData = packageFilterArgs[0]; + t.equal(packageData.main, 'doom', 'package "main" was altered'); + + var packageFile = packageFilterArgs[1]; + t.equal(packageFile, path.join(dir, 'baz'), 'second packageFilter argument is "dir"'); + t.end(); }); diff --git a/node_modules/resolve/test/pathfilter.js b/node_modules/resolve/test/pathfilter.js index 733045a06..16519aeae 100644 --- a/node_modules/resolve/test/pathfilter.js +++ b/node_modules/resolve/test/pathfilter.js @@ -2,41 +2,74 @@ var path = require('path'); var test = require('tape'); var resolve = require('../'); -test('#62: deep module references and the pathFilter', function (t) { - t.plan(9); +var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); - var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); - var pathFilter = function (pkg, x, remainder) { +var pathFilterFactory = function (t) { + return function (pkg, x, remainder) { t.equal(pkg.version, '1.2.3'); t.equal(x, path.join(resolverDir, 'node_modules/deep/ref')); t.equal(remainder, 'ref'); return 'alt'; }; +}; + +test('#62: deep module references and the pathFilter', function (t) { + t.test('deep/ref.js', function (st) { + st.plan(3); - resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { - if (err) t.fail(err); + resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { + if (err) st.fail(err); - t.equal(pkg.version, '1.2.3'); - t.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); + st.equal(pkg.version, '1.2.3'); + st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); + }); + + var res = resolve.sync('deep/ref', { basedir: resolverDir }); + st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); + }); + + t.test('deep/deeper/ref', function (st) { + st.plan(4); + + resolve( + 'deep/deeper/ref', + { basedir: resolverDir }, + function (err, res, pkg) { + if (err) t.fail(err); + st.notEqual(pkg, undefined); + st.equal(pkg.version, '1.2.3'); + st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); + } + ); + + var res = resolve.sync( + 'deep/deeper/ref', + { basedir: resolverDir } + ); + st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); + }); + + t.test('deep/ref alt', function (st) { + st.plan(8); + + var pathFilter = pathFilterFactory(st); + + var res = resolve.sync( + 'deep/ref', + { basedir: resolverDir, pathFilter: pathFilter } + ); + st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); + + resolve( + 'deep/ref', + { basedir: resolverDir, pathFilter: pathFilter }, + function (err, res, pkg) { + if (err) st.fail(err); + st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); + st.end(); + } + ); }); - resolve( - 'deep/deeper/ref', - { basedir: resolverDir }, - function (err, res, pkg) { - if (err) t.fail(err); - t.notEqual(pkg, undefined); - t.equal(pkg.version, '1.2.3'); - t.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); - } - ); - - resolve( - 'deep/ref', - { basedir: resolverDir, pathFilter: pathFilter }, - function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); - } - ); + t.end(); }); diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js index 56641dfde..31f810675 100644 --- a/node_modules/resolve/test/resolver.js +++ b/node_modules/resolve/test/resolver.js @@ -3,7 +3,7 @@ var test = require('tape'); var resolve = require('../'); test('async foo', function (t) { - t.plan(10); + t.plan(12); var dir = path.join(__dirname, 'resolver'); resolve('./foo', { basedir: dir }, function (err, res, pkg) { @@ -30,10 +30,20 @@ test('async foo', function (t) { t.equal(pkg.main, 'resolver'); }); + resolve('./foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + }); + resolve('foo', { basedir: dir }, function (err) { t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'"); t.equal(err.code, 'MODULE_NOT_FOUND'); }); + + // Test that filename is reported as the "from" value when passed. + resolve('foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err) { + t.equal(err.message, "Cannot find module 'foo' from '" + path.join(dir, 'baz.js') + "'"); + }); }); test('bar', function (t) { @@ -55,7 +65,7 @@ test('bar', function (t) { resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) { if (err) t.fail(err); t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); - t.equal(pkg, undefined); + t.equal(pkg.main, 'bar'); }); }); @@ -113,7 +123,7 @@ test('biz', function (t) { resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) { if (err) t.fail(err); t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg, undefined); + t.equal(pkg.main, 'grux'); }); resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) { @@ -125,7 +135,7 @@ test('biz', function (t) { resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) { if (err) t.fail(err); t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg, undefined); + t.equal(pkg.main, './lib'); }); resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) { @@ -137,7 +147,7 @@ test('biz', function (t) { resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) { if (err) t.fail(err); t.equal(res, path.join(dir, 'grux/index.js')); - t.equal(pkg, undefined); + t.equal(pkg.main, 'tiv'); }); resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) { @@ -176,7 +186,7 @@ test('normalize', function (t) { }); test('cup', function (t) { - t.plan(4); + t.plan(5); var dir = path.join(__dirname, 'resolver'); resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) { @@ -193,6 +203,11 @@ test('cup', function (t) { t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'"); t.equal(err.code, 'MODULE_NOT_FOUND'); }); + + // Test that filename is reported as the "from" value when passed. + resolve('./cup', { basedir: dir, extensions: ['.js'], filename: path.join(dir, 'cupboard.js') }, function (err, res) { + t.equal(err.message, "Cannot find module './cup' from '" + path.join(dir, 'cupboard.js') + "'"); + }); }); test('mug', function (t) { @@ -347,3 +362,41 @@ test('async dot slash main', function (t) { t.end(); }); }); + +test('not a directory', function (t) { + t.plan(5); + var path = './foo'; + resolve(path, { basedir: __filename }, function (err, res, pkg) { + t.ok(err, 'a non-directory errors'); + t.equal(arguments.length, 1); + t.equal(res, undefined); + t.equal(pkg, undefined); + + t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'"); + }); +}); + +test('browser field in package.json', function (t) { + t.plan(3); + + var dir = path.join(__dirname, 'resolver'); + resolve( + './browser_field', + { + basedir: dir, + packageFilter: function packageFilter(pkg) { + if (pkg.browser) { + pkg.main = pkg.browser; + delete pkg.browser; + } + return pkg; + } + }, + function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'browser_field', 'b.js')); + t.equal(pkg && pkg.main, 'b'); + t.equal(pkg && pkg.browser, undefined); + } + ); +}); diff --git a/node_modules/resolve/test/resolver/symlinked/.npmignore b/node_modules/resolve/test/resolver/symlinked/.npmignore deleted file mode 100644 index f23f89258..000000000 --- a/node_modules/resolve/test/resolver/symlinked/.npmignore +++ /dev/null @@ -1 +0,0 @@ -symlink
diff --git a/node_modules/resolve/test/resolver/symlinked/_/.npmignore b/node_modules/resolve/test/resolver/symlinked/_/.npmignore deleted file mode 100644 index cf4bab9dd..000000000 --- a/node_modules/resolve/test/resolver/symlinked/_/.npmignore +++ /dev/null @@ -1 +0,0 @@ -!node_modules diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js index 8e33dca69..ce7357430 100644 --- a/node_modules/resolve/test/resolver_sync.js +++ b/node_modules/resolve/test/resolver_sync.js @@ -15,10 +15,26 @@ test('foo', function (t) { path.join(dir, 'foo.js') ); + t.equal( + resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }), + path.join(dir, 'foo.js') + ); + t.throws(function () { resolve.sync('foo', { basedir: dir }); }); + // Test that filename is reported as the "from" value when passed. + t.throws( + function () { + resolve.sync('foo', { basedir: dir, filename: path.join(dir, 'bar.js') }); + }, + { + name: 'Error', + message: "Cannot find module 'foo' from '" + path.join(dir, 'bar.js') + "'" + } + ); + t.end(); }); @@ -265,3 +281,31 @@ test('sync dot slash main', function (t) { t.ok(new Date() - start < 50, 'resolve.sync timedout'); t.end(); }); + +test('not a directory', function (t) { + var path = './foo'; + try { + resolve.sync(path, { basedir: __filename }); + t.fail(); + } catch (err) { + t.ok(err, 'a non-directory errors'); + t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'"); + } + t.end(); +}); + +test('browser field in package.json', function (t) { + var dir = path.join(__dirname, 'resolver'); + var res = resolve.sync('./browser_field', { + basedir: dir, + packageFilter: function packageFilter(pkg) { + if (pkg.browser) { + pkg.main = pkg.browser; + delete pkg.browser; + } + return pkg; + } + }); + t.equal(res, path.join(dir, 'browser_field', 'b.js')); + t.end(); +}); diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js index 544a02371..0b1e6f778 100644 --- a/node_modules/resolve/test/symlinks.js +++ b/node_modules/resolve/test/symlinks.js @@ -41,7 +41,9 @@ test('sync symlink when preserveSymlinks = true', function (t) { 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.doesNotThrow(function () { + 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(); }); |