Support specifying minimum Node version a test requires (#5765)

This commit is contained in:
Buu Nguyen
2017-05-25 08:59:01 -07:00
committed by Henry Zhu
parent bf9baa182b
commit 8abe061fab
3 changed files with 30 additions and 1 deletions

View File

@@ -8,6 +8,7 @@
"main": "lib/index.js",
"dependencies": {
"lodash": "^4.2.0",
"try-resolve": "^1.0.0"
"try-resolve": "^1.0.0",
"semver": "^5.3.0"
}
}

View File

@@ -3,9 +3,12 @@ import trimEnd from "lodash/trimEnd";
import resolve from "try-resolve";
import clone from "lodash/clone";
import merge from "lodash/merge";
import semver from "semver";
import path from "path";
import fs from "fs";
const nodeVersion = semver.clean(process.version.slice(1));
function humanize(val, noext) {
if (noext) val = path.basename(val, path.extname(val));
return val.replace(/-/g, " ");
@@ -125,6 +128,22 @@ export default function get(entryLoc): Array<Suite> {
},
};
// If there's node requirement, check it before pushing task
if (taskOpts.minNodeVersion) {
const minimumVersion = semver.clean(taskOpts.minNodeVersion);
if (minimumVersion == null) {
throw new Error(`'minNodeVersion' has invalid semver format: ${taskOpts.minNodeVersion}`);
}
if (semver.lt(nodeVersion, minimumVersion)) {
return;
}
// Delete to avoid option validation error
delete taskOpts.minNodeVersion;
}
// traceur checks
if (test.exec.code.indexOf("// Async.") >= 0) {