Skip to content

Commit 4d22201

Browse files
committed
chore!: Depend on parse-node-version & no longer export nodeVersion from module (closes #7)
1 parent adc9cc4 commit 4d22201

File tree

4 files changed

+57
-40
lines changed

4 files changed

+57
-40
lines changed

index.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var nodeVersion = require('./node-version');
3+
var nodeVersion = require('parse-node-version')(process.version);
44

55
function defaultResolution(customResolution) {
66
var resolution = parseInt(customResolution, 10);
@@ -12,6 +12,4 @@ function defaultResolution(customResolution) {
1212
return nodeVersion.major === 0 && nodeVersion.minor <= 10 ? 1000 : 1;
1313
}
1414

15-
defaultResolution.nodeVersion = nodeVersion;
16-
1715
module.exports = defaultResolution;

node-version.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,24 @@
1515
"main": "index.js",
1616
"files": [
1717
"LICENSE",
18-
"index.js",
19-
"node-version.js"
18+
"index.js"
2019
],
2120
"scripts": {
2221
"lint": "eslint .",
2322
"pretest": "npm run lint",
2423
"test": "nyc mocha --async-only"
2524
},
25+
"dependencies": {
26+
"parse-node-version": "^2.0.0"
27+
},
2628
"devDependencies": {
2729
"eslint": "^7.32.0",
2830
"eslint-config-gulp": "^5.0.1",
2931
"eslint-plugin-node": "^11.1.0",
3032
"expect": "^27.4.2",
3133
"mocha": "^8.4.0",
32-
"nyc": "^15.1.0"
34+
"nyc": "^15.1.0",
35+
"sinon": "^12.0.1"
3336
},
3437
"nyc": {
3538
"reporter": [

test/default-resolution.js

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,85 @@
11
'use strict';
22

33
var expect = require('expect');
4+
var sinon = require('sinon');
45

5-
var defaultResolution = require('../');
6-
var nodeVersion = require('../node-version');
6+
var originalCacheKeys = Object.keys(require.cache);
77

8-
describe('nodeVersion', function () {
9-
it('has all integers and not strings', function (done) {
10-
expect(typeof nodeVersion.major).toEqual('number');
11-
expect(typeof nodeVersion.minor).toEqual('number');
12-
expect(typeof nodeVersion.patch).toEqual('number');
13-
done();
14-
});
15-
});
8+
function cleanupCache(key) {
9+
if (originalCacheKeys.indexOf(key) === -1) {
10+
delete require.cache[key];
11+
}
12+
}
13+
14+
function cleanup(done) {
15+
// restore the require.cache to startup state
16+
Object.keys(require.cache).forEach(cleanupCache);
17+
18+
done();
19+
}
1620

1721
describe('defaultResolution', function () {
18-
// Typically I don't unit test helpers, but this reduces the last run tests
19-
var major = nodeVersion.major;
20-
var minor = nodeVersion.minor;
22+
afterEach(cleanup);
23+
24+
it('should return default resolution to 1 (millisecond) on supported platforms', function (done) {
25+
var defaultResolution = require('../');
2126

22-
afterEach(function (done) {
23-
nodeVersion.major = major;
24-
nodeVersion.minor = minor;
27+
expect(defaultResolution()).toEqual(1);
2528
done();
2629
});
2730

2831
it('should return default resolution to 1000 (1 second) on node v0.10', function (done) {
29-
nodeVersion.major = 0;
30-
nodeVersion.minor = 10;
32+
// Only stub around the import of the module
33+
var stub = sinon.stub(process, 'version').value('v0.10.0');
34+
35+
var defaultResolution = require('../');
36+
37+
stub.restore();
38+
3139
expect(defaultResolution()).toEqual(1000);
40+
3241
done();
3342
});
3443

3544
it('should return default resolution to 1 (millisecond) on node v0.11', function (done) {
36-
nodeVersion.major = 0;
37-
nodeVersion.minor = 11;
45+
// Only stub around the import of the module
46+
var stub = sinon.stub(process, 'version').value('v0.11.0');
47+
48+
var defaultResolution = require('../');
49+
50+
stub.restore();
51+
3852
expect(defaultResolution()).toEqual(1);
3953
done();
4054
});
4155

4256
it('should return default resolution to 1 (millisecond) on node v0.12', function (done) {
43-
nodeVersion.major = 0;
44-
nodeVersion.minor = 12;
57+
// Only stub around the import of the module
58+
var stub = sinon.stub(process, 'version').value('v0.12.0');
59+
60+
var defaultResolution = require('../');
61+
62+
stub.restore();
63+
4564
expect(defaultResolution()).toEqual(1);
4665
done();
4766
});
4867

4968
it('should return default resolution to 1 (millisecond) on node v4.3', function (done) {
50-
nodeVersion.major = 4;
51-
nodeVersion.minor = 3;
69+
// Only stub around the import of the module
70+
var stub = sinon.stub(process, 'version').value('v4.3.0');
71+
72+
var defaultResolution = require('../');
73+
74+
stub.restore();
75+
5276
expect(defaultResolution()).toEqual(1);
5377
done();
5478
});
5579

5680
it('should return default resolution passed as argument', function (done) {
81+
var defaultResolution = require('../');
82+
5783
expect(defaultResolution(2000)).toEqual(2000);
5884
done();
5985
});

0 commit comments

Comments
 (0)