aboutsummaryrefslogtreecommitdiff
path: root/node_modules/resolve/test/core.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/resolve/test/core.js')
-rw-r--r--node_modules/resolve/test/core.js61
1 files changed, 57 insertions, 4 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();
});