Skip to content

Commit

Permalink
Backport minNodeVersion test option from babel#5765 for 6.x
Browse files Browse the repository at this point in the history
  • Loading branch information
buunguyen authored and loganfsmyth committed Apr 25, 2018
1 parent e72cf66 commit ae43e06
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Expand Up @@ -195,6 +195,15 @@ If you need to check for an error that is thrown you can add to the `options.jso
}
```

If the test requires a minimum Node version, you can add `minNodeVersion` (must be in semver format).

```js
// options.json example
{
"minNodeVersion": "5.0.0"
}
```

#### Bootstrapping expected output

For both `babel-plugin-x` and `babylon`, you can easily generate an `expected.js`/`expected.json` automatically by just providing `actual.js` and running the tests as you usually would.
Expand Down
3 changes: 2 additions & 1 deletion packages/babel-helper-fixtures/package.json
Expand Up @@ -9,6 +9,7 @@
"dependencies": {
"babel-runtime": "^6.26.0",
"lodash": "^4.17.4",
"try-resolve": "^1.0.1"
"try-resolve": "^1.0.1",
"semver": "^5.3.0"
}
}
19 changes: 19 additions & 0 deletions packages/babel-helper-fixtures/src/index.js
Expand Up @@ -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, " ");
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit ae43e06

Please sign in to comment.