Ensure babel-cli tests compare generated output with out-files (#5205)

This commit is contained in:
Brian Ng 2017-03-23 11:06:56 -05:00 committed by Henry Zhu
parent c9a851a218
commit c687b703ae
54 changed files with 117 additions and 15 deletions

View File

@ -0,0 +1,8 @@
{
"args": [
"src",
"--out-dir", "lib",
"--copy-files",
"--ignore", "src/foo/*"
]
}

View File

@ -0,0 +1,3 @@
"use strict";
index;

View File

@ -0,0 +1 @@
src/index.js -> lib/index.js

View File

@ -0,0 +1 @@
index;

View File

@ -0,0 +1,8 @@
{
"args": [
"src",
"--out-dir", "lib",
"--copy-files",
"--only", "src/foo/*"
]
}

View File

@ -0,0 +1,3 @@
"use strict";
bar;

View File

@ -0,0 +1 @@
index;

View File

@ -0,0 +1 @@
src/foo/bar.js -> lib/foo/bar.js

View File

@ -0,0 +1 @@
bar;

View File

@ -0,0 +1,3 @@
{
"args": ["src", "--out-dir", "lib", "--copy-files"]
}

View File

@ -0,0 +1,3 @@
"use strict";
bar;

View File

@ -0,0 +1 @@
"use strict";

View File

@ -0,0 +1,2 @@
src/bar/index.js -> lib/bar/index.js
src/foo/foo.js -> lib/foo/foo.js

View File

@ -0,0 +1 @@
a.foo;

View File

@ -0,0 +1 @@
a;

View File

@ -0,0 +1 @@
b;

View File

@ -0,0 +1 @@
b.foo;

View File

@ -0,0 +1 @@
c;

View File

@ -0,0 +1 @@
foo;

View File

@ -0,0 +1,3 @@
{
"args": ["src", "--out-dir", "lib", "--ignore", "**/*.foo.js"]
}

View File

@ -0,0 +1,3 @@
"use strict";
a;

View File

@ -0,0 +1,3 @@
"use strict";
b;

View File

@ -0,0 +1,3 @@
"use strict";
c;

View File

@ -0,0 +1,3 @@
"use strict";
foo;

View File

@ -0,0 +1,4 @@
src/a.js -> lib/a.js
src/b.js -> lib/b.js
src/baz/c.js -> lib/baz/c.js
src/foo.js -> lib/foo.js

View File

@ -0,0 +1 @@
a.foo;

View File

@ -0,0 +1 @@
a;

View File

@ -0,0 +1 @@
b;

View File

@ -0,0 +1 @@
b.foo;

View File

@ -0,0 +1 @@
c;

View File

@ -0,0 +1 @@
foo;

View File

@ -0,0 +1,3 @@
{
"args": ["src", "--out-dir", "lib", "--only", "**/*.foo.js"]
}

View File

@ -0,0 +1,3 @@
"use strict";
a.foo;

View File

@ -0,0 +1,3 @@
"use strict";
b.foo;

View File

@ -0,0 +1,2 @@
src/a.foo.js -> lib/a.foo.js
src/baz/b.foo.js -> lib/baz/b.foo.js

View File

@ -5,4 +5,4 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
var Test = function Test() {
_classCallCheck(this, Test);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXIvYmFyLmpzIl0sIm5hbWVzIjpbIlRlc3QiXSwibWFwcGluZ3MiOiI7Ozs7SUFBTUEsSSIsImZpbGUiOiJiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBUZXN0IHtcblxufSJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXIvYmFyLmpzIl0sIm5hbWVzIjpbIlRlc3QiXSwibWFwcGluZ3MiOiI7Ozs7SUFBTUEsSSIsImZpbGUiOiJiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBUZXN0IHtcblxufSJdfQ==

View File

@ -3,4 +3,4 @@
arr.map(function (x) {
return x * MULTIPLIER;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb28uanMiXSwibmFtZXMiOlsiYXJyIiwibWFwIiwieCIsIk1VTFRJUExJRVIiXSwibWFwcGluZ3MiOiI7O0FBQUFBLElBQUlDLEdBQUosQ0FBUTtBQUFBLFNBQUtDLElBQUlDLFVBQVQ7QUFBQSxDQUFSIiwiZmlsZSI6ImZvby5qcyIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogTVVMVElQTElFUik7Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb28uanMiXSwibmFtZXMiOlsiYXJyIiwibWFwIiwieCIsIk1VTFRJUExJRVIiXSwibWFwcGluZ3MiOiI7O0FBQUFBLElBQUlDLEdBQUosQ0FBUTtBQUFBLFNBQUtDLElBQUlDLFVBQVQ7QUFBQSxDQUFSIiwiZmlsZSI6ImZvby5qcyIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogTVVMVElQTElFUik7Il19

View File

@ -4,4 +4,4 @@ arr.map(function (x) {
return x * MULTIPLIER;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksR0FBSixDQUFRO0FBQUEsU0FBSyxJQUFJLFVBQVQ7QUFBQSxDQUFSIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksR0FBSixDQUFRO0FBQUEsU0FBSyxJQUFJLFVBQVQ7QUFBQSxDQUFSIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ==

View File

@ -1,3 +1,3 @@
{
"inlineSourceMap": true
"sourceMap": "inline"
}

View File

@ -4,4 +4,4 @@ var foo = function foo() {
return 4;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsVUFBVSxlO1MsQUFBTTtBQUFDIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZm9vID0gKCkgPT4gNDsiXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsVUFBVSxlO1MsQUFBTTtBQUFDIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZm9vID0gKCkgPT4gNDsiXX0=

View File

@ -11,4 +11,4 @@ arr.map(function (x) {
return x * MULTIPLIER;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQUFNLEk7Ozs7O0FDQU4sSUFBSSxHQUFKLENBQVE7QUFBQSxTQUFLLElBQUksVUFBVDtBQUFBLENBQVIiLCJmaWxlIjoic2NyaXB0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRlc3Qge1xuXG59IiwiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQUFNLEk7Ozs7O0FDQU4sSUFBSSxHQUFKLENBQVE7QUFBQSxTQUFLLElBQUksVUFBVDtBQUFBLENBQVIiLCJmaWxlIjoic2NyaXB0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRlc3Qge1xuXG59IiwiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0=

View File

@ -13,6 +13,10 @@ const fs = require("fs");
const fixtureLoc = path.join(__dirname, "fixtures");
const tmpLoc = path.join(__dirname, "tmp");
const fileFilter = function(x) {
return x !== ".DS_Store";
};
const presetLocs = [
path.join(__dirname, "../../babel-preset-es2015"),
path.join(__dirname, "../../babel-preset-react"),
@ -23,10 +27,10 @@ const pluginLocs = [
path.join(__dirname, "/../../babel-plugin-transform-es2015-modules-commonjs"),
].join(",");
const readDir = function (loc) {
const readDir = function (loc, filter) {
const files = {};
if (fs.existsSync(loc)) {
readdir(loc).forEach(function (filename) {
readdir(loc, filter).forEach(function (filename) {
files[filename] = helper.readFile(path.join(loc, filename));
});
}
@ -70,11 +74,27 @@ const assertTest = function (stdout, stderr, opts) {
throw new Error("stdout:\n" + stdout);
}
Object.keys(opts.outFiles, function (filename) {
if (opts.outFiles) {
const actualFiles = readDir(path.join(tmpLoc));
Object.keys(actualFiles).forEach(function (filename) {
if (!opts.inFiles.hasOwnProperty(filename)) {
const expect = opts.outFiles[filename];
const actual = helper.readFile(filename);
chai.expect(actual).to.equal(expect, "out-file " + filename);
const actual = actualFiles[filename];
chai.expect(expect, "Output is missing: " + filename).to.not.be.undefined;
if (expect) {
chai.expect(actual).to.equal(expect, "Compiled output does not match: " + filename);
}
}
});
Object.keys(opts.outFiles).forEach(function(filename) {
chai.expect(actualFiles, "Extraneous file in output: " + filename)
.to.contain.key(filename);
});
}
};
const buildTest = function (binName, testName, opts) {
@ -165,8 +185,8 @@ fs.readdirSync(fixtureLoc).forEach(function (binName) {
}
});
opts.outFiles = readDir(path.join(testLoc, "out-files"));
opts.inFiles = readDir(path.join(testLoc, "in-files"));
opts.outFiles = readDir(path.join(testLoc, "out-files"), fileFilter);
opts.inFiles = readDir(path.join(testLoc, "in-files"), fileFilter);
const babelrcLoc = path.join(testLoc, ".babelrc");
if (fs.existsSync(babelrcLoc)) {