3 var test = require('tape');
4 var keys = require('object-keys');
5 var isCore = require('../');
6 var data = require('../core.json');
8 test('core modules', function (t) {
9 t.test('isCore()', function (st) {
12 st.ok(isCore('http'));
14 st.ok(!isCore('seq'));
15 st.ok(!isCore('../'));
17 st.ok(!isCore('toString'));
22 t.test('core list', function (st) {
23 var cores = keys(data);
24 st.plan(cores.length);
26 for (var i = 0; i < cores.length; ++i) {
28 var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func
30 st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw');
32 st['throws'](requireFunc, mod + ' not supported; requiring throws');
39 t.test('core via repl module', { skip: !data.repl }, function (st) {
40 var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
42 st.skip('module.builtinModules does not exist');
44 for (var i = 0; i < libs.length; ++i) {
46 st.ok(data[mod], mod + ' is a core module');
48 function () { require(mod); }, // eslint-disable-line no-loop-func
49 'requiring ' + mod + ' does not throw'
56 t.test('core via builtinModules list', { skip: !data.module }, function (st) {
57 var libs = require('module').builtinModules;
59 st.skip('module.builtinModules does not exist');
63 'v8/tools/tickprocessor-driver',
65 'v8/tools/tickprocessor',
68 for (var i = 0; i < libs.length; ++i) {
70 if (excludeList.indexOf(mod) === -1) {
71 st.ok(data[mod], mod + ' is a core module');
73 function () { require(mod); }, // eslint-disable-line no-loop-func
74 'requiring ' + mod + ' does not throw'