Skip to content

Commit b826f30

Browse files
committed
[Fix] fix broken core tests; change core.json to be an object instead of an array; fix results
1 parent e66117d commit b826f30

File tree

3 files changed

+74
-63
lines changed

3 files changed

+74
-63
lines changed

lib/core.js

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,34 @@
11
var current = (process.versions && process.versions.node && process.versions.node.split('.')) || [];
22

3-
function versionIncluded(version) {
4-
if (version === '*') return true;
5-
var versionParts = version.split('.');
3+
function versionIncluded(specifier) {
4+
if (specifier === true) { return true; }
5+
var parts = specifier.split(' ');
6+
var op = parts[0];
7+
var versionParts = parts[1].split('.');
8+
69
for (var i = 0; i < 3; ++i) {
7-
if ((current[i] || 0) >= (versionParts[i] || 0)) return true;
10+
var cur = Number(current[i] || 0);
11+
var ver = Number(versionParts[i] || 0);
12+
if (cur === ver) {
13+
continue; // eslint-disable-line no-restricted-syntax, no-continue
14+
}
15+
if (op === '<') {
16+
return cur < ver;
17+
} else if (op === '>=') {
18+
return cur >= ver;
19+
} else {
20+
return false;
21+
}
822
}
923
return false;
1024
}
1125

1226
var data = require('./core.json');
1327

1428
var core = {};
15-
for (var version in data) { // eslint-disable-line no-restricted-syntax
16-
if (Object.prototype.hasOwnProperty.call(data, version) && versionIncluded(version)) {
17-
for (var i = 0; i < data[version].length; ++i) {
18-
core[data[version][i]] = true;
19-
}
29+
for (var mod in data) { // eslint-disable-line no-restricted-syntax
30+
if (Object.prototype.hasOwnProperty.call(data, mod)) {
31+
core[mod] = versionIncluded(data[mod]);
2032
}
2133
}
2234
module.exports = core;

lib/core.json

Lines changed: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,42 @@
11
{
2-
"*": [
3-
"assert",
4-
"buffer_ieee754",
5-
"buffer",
6-
"child_process",
7-
"cluster",
8-
"console",
9-
"constants",
10-
"crypto",
11-
"_debugger",
12-
"dgram",
13-
"dns",
14-
"domain",
15-
"events",
16-
"freelist",
17-
"fs",
18-
"http",
19-
"https",
20-
"_linklist",
21-
"module",
22-
"net",
23-
"os",
24-
"path",
25-
"punycode",
26-
"querystring",
27-
"readline",
28-
"repl",
29-
"stream",
30-
"string_decoder",
31-
"sys",
32-
"timers",
33-
"tls",
34-
"tty",
35-
"url",
36-
"util",
37-
"vm",
38-
"zlib"
39-
],
40-
"0.11": [
41-
"_http_server"
42-
],
43-
"1.0": [
44-
"process",
45-
"v8"
46-
],
47-
"8.5": [
48-
"perf_hooks"
49-
]
2+
"assert": true,
3+
"buffer_ieee754": "< 0.9.7",
4+
"buffer": true,
5+
"child_process": true,
6+
"cluster": true,
7+
"console": true,
8+
"constants": true,
9+
"crypto": true,
10+
"_debugger": "< 8",
11+
"dgram": true,
12+
"dns": true,
13+
"domain": true,
14+
"events": true,
15+
"freelist": "< 6.0.0",
16+
"fs": true,
17+
"http": true,
18+
"https": true,
19+
"_http_server": ">= 0.11",
20+
"_linklist": "< 8.0.0",
21+
"module": true,
22+
"net": true,
23+
"os": true,
24+
"path": true,
25+
"perf_hooks": ">= 8.5",
26+
"process": ">= 1",
27+
"punycode": true,
28+
"querystring": true,
29+
"readline": true,
30+
"repl": true,
31+
"stream": true,
32+
"string_decoder": true,
33+
"sys": true,
34+
"timers": true,
35+
"tls": true,
36+
"tty": true,
37+
"url": true,
38+
"util": true,
39+
"v8": ">= 1",
40+
"vm": true,
41+
"zlib": true
5042
}

test/core.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var test = require('tape');
2+
var keys = require('object-keys');
23
var resolve = require('../');
34

45
test('core modules', function (t) {
@@ -13,13 +14,19 @@ test('core modules', function (t) {
1314
});
1415

1516
t.test('core list', function (st) {
16-
st.plan(resolve.core.length);
17+
var cores = keys(resolve.core);
18+
st.plan(cores.length);
1719

18-
for (var i = 0; i < resolve.core.length; ++i) {
19-
st.doesNotThrow(
20-
function () { require(resolve.core[i]); }, // eslint-disable-line no-loop-func
21-
'requiring ' + resolve.core[i] + ' does not throw'
22-
);
20+
for (var i = 0; i < cores.length; ++i) {
21+
var mod = cores[i];
22+
if (resolve.core[mod]) {
23+
st.doesNotThrow(
24+
function () { require(mod); }, // eslint-disable-line no-loop-func
25+
'requiring ' + mod + ' does not throw'
26+
);
27+
} else {
28+
st.skip(mod + ' not supported');
29+
}
2330
}
2431

2532
st.end();

0 commit comments

Comments
 (0)