Fix bug + Generate test fixtures if no expected.js (#4858)

This commit is contained in:
Henry Zhu
2016-11-17 17:53:46 -05:00
committed by GitHub
parent efefe828f9
commit cd041541b8
9 changed files with 50 additions and 20 deletions

View File

@@ -0,0 +1,2 @@
({ [fieldName]: value, ...rest } = values)
let error;

View File

@@ -0,0 +1 @@
({[fieldName]:value,...rest}=values);let error;

View File

@@ -6,6 +6,8 @@ let parse = require("babylon").parse;
let chai = require("chai");
let t = require("babel-types");
let _ = require("lodash");
let fs = require("fs");
let path = require("path");
describe("generation", function () {
it("completeness", function () {
@@ -158,25 +160,36 @@ suites.forEach(function (testSuite) {
it(task.title, !task.disabled && function () {
let expect = task.expect;
let actual = task.actual;
let actualCode = actual.code;
let actualAst = parse(actual.code, {
filename: actual.loc,
plugins: [
"jsx",
"flow",
"decorators",
"asyncFunctions",
"exportExtensions",
"functionBind",
"classConstructorCall",
"classProperties",
],
strictMode: false,
sourceType: "module",
});
if (actualCode) {
let actualAst = parse(actualCode, {
filename: actual.loc,
plugins: [
"jsx",
"flow",
"doExpressions",
"objectRestSpread",
"decorators",
"classProperties",
"exportExtensions",
"asyncGenerators",
"functionBind",
"functionSent",
"dynamicImport"
],
strictMode: false,
sourceType: "module",
});
let result = generate.default(actualAst, task.options, actualCode);
let actualCode = generate.default(actualAst, task.options, actual.code).code;
chai.expect(actualCode).to.equal(expect.code, actual.loc + " !== " + expect.loc);
if (!expect.code && result.code && fs.statSync(path.dirname(expect.loc)).isDirectory() && !process.env.CI) {
console.log(`New test file created: ${expect.loc}`);
fs.writeFileSync(expect.loc, result.code);
} else {
chai.expect(result.code).to.be.equal(expect.code, actual.loc + " !== " + expect.loc);
}
}
});
});
});