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