Skip to content

Commit

Permalink
chore!: Depend on parse-node-version & no longer export nodeVersion f…
Browse files Browse the repository at this point in the history
…rom module (closes #7)
  • Loading branch information
phated committed Dec 13, 2021
1 parent adc9cc4 commit 4d22201
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 40 deletions.
4 changes: 1 addition & 3 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

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

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

defaultResolution.nodeVersion = nodeVersion;

module.exports = defaultResolution;
10 changes: 0 additions & 10 deletions node-version.js

This file was deleted.

9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,24 @@
"main": "index.js",
"files": [
"LICENSE",
"index.js",
"node-version.js"
"index.js"
],
"scripts": {
"lint": "eslint .",
"pretest": "npm run lint",
"test": "nyc mocha --async-only"
},
"dependencies": {
"parse-node-version": "^2.0.0"
},
"devDependencies": {
"eslint": "^7.32.0",
"eslint-config-gulp": "^5.0.1",
"eslint-plugin-node": "^11.1.0",
"expect": "^27.4.2",
"mocha": "^8.4.0",
"nyc": "^15.1.0"
"nyc": "^15.1.0",
"sinon": "^12.0.1"
},
"nyc": {
"reporter": [
Expand Down
74 changes: 50 additions & 24 deletions test/default-resolution.js
Original file line number Diff line number Diff line change
@@ -1,59 +1,85 @@
'use strict';

var expect = require('expect');
var sinon = require('sinon');

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

describe('nodeVersion', function () {
it('has all integers and not strings', function (done) {
expect(typeof nodeVersion.major).toEqual('number');
expect(typeof nodeVersion.minor).toEqual('number');
expect(typeof nodeVersion.patch).toEqual('number');
done();
});
});
function cleanupCache(key) {
if (originalCacheKeys.indexOf(key) === -1) {
delete require.cache[key];
}
}

function cleanup(done) {
// restore the require.cache to startup state
Object.keys(require.cache).forEach(cleanupCache);

done();
}

describe('defaultResolution', function () {
// Typically I don't unit test helpers, but this reduces the last run tests
var major = nodeVersion.major;
var minor = nodeVersion.minor;
afterEach(cleanup);

it('should return default resolution to 1 (millisecond) on supported platforms', function (done) {
var defaultResolution = require('../');

afterEach(function (done) {
nodeVersion.major = major;
nodeVersion.minor = minor;
expect(defaultResolution()).toEqual(1);
done();
});

it('should return default resolution to 1000 (1 second) on node v0.10', function (done) {
nodeVersion.major = 0;
nodeVersion.minor = 10;
// Only stub around the import of the module
var stub = sinon.stub(process, 'version').value('v0.10.0');

var defaultResolution = require('../');

stub.restore();

expect(defaultResolution()).toEqual(1000);

done();
});

it('should return default resolution to 1 (millisecond) on node v0.11', function (done) {
nodeVersion.major = 0;
nodeVersion.minor = 11;
// Only stub around the import of the module
var stub = sinon.stub(process, 'version').value('v0.11.0');

var defaultResolution = require('../');

stub.restore();

expect(defaultResolution()).toEqual(1);
done();
});

it('should return default resolution to 1 (millisecond) on node v0.12', function (done) {
nodeVersion.major = 0;
nodeVersion.minor = 12;
// Only stub around the import of the module
var stub = sinon.stub(process, 'version').value('v0.12.0');

var defaultResolution = require('../');

stub.restore();

expect(defaultResolution()).toEqual(1);
done();
});

it('should return default resolution to 1 (millisecond) on node v4.3', function (done) {
nodeVersion.major = 4;
nodeVersion.minor = 3;
// Only stub around the import of the module
var stub = sinon.stub(process, 'version').value('v4.3.0');

var defaultResolution = require('../');

stub.restore();

expect(defaultResolution()).toEqual(1);
done();
});

it('should return default resolution passed as argument', function (done) {
var defaultResolution = require('../');

expect(defaultResolution(2000)).toEqual(2000);
done();
});
Expand Down

0 comments on commit 4d22201

Please sign in to comment.