Fix bug + Generate test fixtures if no expected.js (#4858)
This commit is contained in:
2
packages/babel-generator/test/fixtures/compact/expression-statement/actual.js
vendored
Normal file
2
packages/babel-generator/test/fixtures/compact/expression-statement/actual.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
({ [fieldName]: value, ...rest } = values)
|
||||
let error;
|
||||
1
packages/babel-generator/test/fixtures/compact/expression-statement/expected.js
vendored
Normal file
1
packages/babel-generator/test/fixtures/compact/expression-statement/expected.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
({[fieldName]:value,...rest}=values);let error;
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user