Add simple smoke-test (#240)
This commit is contained in:
parent
db1fd15616
commit
af2b162175
2
experimental/babel-preset-env/.gitignore
vendored
2
experimental/babel-preset-env/.gitignore
vendored
@ -6,3 +6,5 @@ test/tmp
|
||||
*.log
|
||||
.vscode
|
||||
.nyc_output
|
||||
tmp
|
||||
babel-preset-env-*.tgz
|
||||
|
||||
@ -6,3 +6,6 @@ scripts
|
||||
.travis.yml
|
||||
codecov.yml
|
||||
yarn.lock
|
||||
.nyc_output
|
||||
.vscode
|
||||
babel-preset-env-*.tgz
|
||||
|
||||
@ -27,7 +27,8 @@ install:
|
||||
- $PKG_CMD install
|
||||
script:
|
||||
- 'if [ -n "${LINT-}" ]; then $PKG_CMD run lint ; fi'
|
||||
- 'if [ -z "${LINT-}" ]; then $PKG_CMD run test-ci ; fi'
|
||||
- 'if [ -n "${SMOKE_TEST-}" ]; then node scripts/smoke-test.js ; fi'
|
||||
- 'if [ -z "${LINT-}" ] && [ -z "${SMOKE_TEST-}" ]; then $PKG_CMD run test-ci ; fi'
|
||||
matrix:
|
||||
fast_finish: true
|
||||
exclude:
|
||||
@ -38,5 +39,7 @@ matrix:
|
||||
include:
|
||||
- node_js: "node"
|
||||
env: LINT=true PKG_CMD="npm"
|
||||
- node_js: "node"
|
||||
env: SMOKE_TEST=true PKG_CMD="npm"
|
||||
|
||||
after_success: 'if [ -z "${LINT-}" ]; then npm run coverage-ci ; fi'
|
||||
after_success: 'if [ -z "${LINT-}" ] && [ -z "${SMOKE_TEST-}" ]; then npm run coverage-ci ; fi'
|
||||
|
||||
69
experimental/babel-preset-env/scripts/smoke-test.js
Executable file
69
experimental/babel-preset-env/scripts/smoke-test.js
Executable file
@ -0,0 +1,69 @@
|
||||
const fs = require("fs-extra");
|
||||
const execSync = require("child_process").execSync;
|
||||
const path = require("path");
|
||||
const pkg = require("../package.json");
|
||||
|
||||
let errorOccurred = false;
|
||||
|
||||
const tempFolderPath = path.join(__dirname, "../tmp");
|
||||
const packPath = path.join(__dirname, `../babel-preset-env-${pkg.version}.tgz`);
|
||||
|
||||
try {
|
||||
console.log("Creating package");
|
||||
execSync("npm pack");
|
||||
|
||||
console.log("Setting up smoke test");
|
||||
fs.ensureDir(tempFolderPath);
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(tempFolderPath, "package.json"),
|
||||
`
|
||||
{
|
||||
"name": "babel-preset-env-smoke-test",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"build": "babel index.js --out-file index.es6"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-cli": "*",
|
||||
"babel-preset-env": "${packPath}"
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(tempFolderPath, ".babelrc"),
|
||||
`
|
||||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
modules: false,
|
||||
useBuiltIns: true
|
||||
}]
|
||||
]
|
||||
}
|
||||
`
|
||||
);
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(tempFolderPath, "index.js"),
|
||||
`
|
||||
import "babel-polyfill";
|
||||
1 ** 2;
|
||||
`
|
||||
);
|
||||
|
||||
process.chdir(tempFolderPath);
|
||||
|
||||
console.log("Running smoke test");
|
||||
execSync("npm install && npm run build");
|
||||
} catch (e) {
|
||||
errorOccurred = true;
|
||||
}
|
||||
|
||||
console.log("Cleaning up");
|
||||
fs.removeSync(tempFolderPath);
|
||||
fs.removeSync(packPath);
|
||||
|
||||
process.exit(errorOccurred ? 1 : 0);
|
||||
Loading…
x
Reference in New Issue
Block a user