* update packages to alpha.12 * fix tests * Read babel-cli from package.json in smoke test
112 lines
2.0 KiB
JavaScript
Executable File
112 lines
2.0 KiB
JavaScript
Executable File
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 dependencies");
|
|
|
|
fs.ensureDirSync(tempFolderPath);
|
|
process.chdir(tempFolderPath);
|
|
|
|
const babelCliVersion = pkg.devDependencies["babel-cli"];
|
|
|
|
if (!babelCliVersion) {
|
|
throw new Error("Could not read version of babel-cli from package.json");
|
|
}
|
|
|
|
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": "${babelCliVersion}",
|
|
"babel-preset-env": "${packPath}"
|
|
}
|
|
}
|
|
`
|
|
);
|
|
|
|
execSync("npm install");
|
|
|
|
console.log("Setting up 'usage' smoke test");
|
|
|
|
fs.writeFileSync(
|
|
path.join(tempFolderPath, ".babelrc"),
|
|
`
|
|
{
|
|
"presets": [
|
|
["env", {
|
|
modules: false,
|
|
useBuiltIns: "usage"
|
|
}]
|
|
]
|
|
}
|
|
`
|
|
);
|
|
|
|
fs.writeFileSync(
|
|
path.join(tempFolderPath, "index.js"),
|
|
`
|
|
const foo = new Promise((resolve) => {
|
|
resolve(new Map());
|
|
});
|
|
`
|
|
);
|
|
|
|
console.log("Running 'usage' smoke test");
|
|
|
|
execSync("npm run build");
|
|
|
|
console.log("Setting up 'entry' smoke test");
|
|
|
|
fs.writeFileSync(
|
|
path.join(tempFolderPath, ".babelrc"),
|
|
`
|
|
{
|
|
"presets": [
|
|
["env", {
|
|
modules: false,
|
|
useBuiltIns: "entry"
|
|
}]
|
|
]
|
|
}
|
|
`
|
|
);
|
|
|
|
fs.writeFileSync(
|
|
path.join(tempFolderPath, "index.js"),
|
|
`
|
|
import "babel-polyfill";
|
|
1 ** 2;
|
|
`
|
|
);
|
|
|
|
console.log("Running 'entry' smoke test");
|
|
|
|
execSync("npm run build");
|
|
} catch (e) {
|
|
console.log(e);
|
|
errorOccurred = true;
|
|
}
|
|
|
|
console.log("Cleaning up");
|
|
fs.removeSync(tempFolderPath);
|
|
fs.removeSync(packPath);
|
|
|
|
process.exit(errorOccurred ? 1 : 0);
|