1 | var test = require('tape');
|
2 | var keys = require('object-keys');
|
3 | var resolve = require('../');
|
4 |
|
5 | test('core modules', function (t) {
|
6 | t.test('isCore()', function (st) {
|
7 | st.ok(resolve.isCore('fs'));
|
8 | st.ok(resolve.isCore('net'));
|
9 | st.ok(resolve.isCore('http'));
|
10 |
|
11 | st.ok(!resolve.isCore('seq'));
|
12 | st.ok(!resolve.isCore('../'));
|
13 |
|
14 | st.ok(!resolve.isCore('toString'));
|
15 |
|
16 | st.end();
|
17 | });
|
18 |
|
19 | t.test('core list', function (st) {
|
20 | var cores = keys(resolve.core);
|
21 | st.plan(cores.length);
|
22 |
|
23 | for (var i = 0; i < cores.length; ++i) {
|
24 | var mod = cores[i];
|
25 | if (resolve.core[mod]) {
|
26 | st.doesNotThrow(
|
27 | function () { require(mod); },
|
28 | mod + ' supported; requiring does not throw'
|
29 | );
|
30 | } else {
|
31 | st.throws(
|
32 | function () { require(mod); },
|
33 | mod + ' not supported; requiring throws'
|
34 | );
|
35 | }
|
36 | }
|
37 |
|
38 | st.end();
|
39 | });
|
40 |
|
41 | t.test('core via repl module', { skip: !resolve.core.repl }, function (st) {
|
42 | var libs = require('repl')._builtinLibs;
|
43 | if (!libs) {
|
44 | st.skip('module.builtinModules does not exist');
|
45 | return st.end();
|
46 | }
|
47 | for (var i = 0; i < libs.length; ++i) {
|
48 | var mod = libs[i];
|
49 | st.ok(resolve.core[mod], mod + ' is a core module');
|
50 | st.doesNotThrow(
|
51 | function () { require(mod); },
|
52 | 'requiring ' + mod + ' does not throw'
|
53 | );
|
54 | }
|
55 | st.end();
|
56 | });
|
57 |
|
58 | t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) {
|
59 | var libs = require('module').builtinModules;
|
60 | if (!libs) {
|
61 | st.skip('module.builtinModules does not exist');
|
62 | return st.end();
|
63 | }
|
64 | var blacklist = [
|
65 | '_debug_agent',
|
66 | 'v8/tools/tickprocessor-driver',
|
67 | 'v8/tools/SourceMap',
|
68 | 'v8/tools/tickprocessor',
|
69 | 'v8/tools/profile'
|
70 | ];
|
71 | for (var i = 0; i < libs.length; ++i) {
|
72 | var mod = libs[i];
|
73 | if (blacklist.indexOf(mod) === -1) {
|
74 | st.ok(resolve.core[mod], mod + ' is a core module');
|
75 | st.doesNotThrow(
|
76 | function () { require(mod); },
|
77 | 'requiring ' + mod + ' does not throw'
|
78 | );
|
79 | }
|
80 | }
|
81 | st.end();
|
82 | });
|
83 |
|
84 | t.end();
|
85 | });
|