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,7 @@
"use strict";
var _values = values;
value = _values[fieldName];
rest = babelHelpers.objectWithoutProperties(_values, [fieldName]);
var error = void 0;

View File

@@ -0,0 +1,4 @@
{
"compact": false,
"presets": ["es2015","stage-2"]
}

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);
}
}
});
});
});

View File

@@ -82,6 +82,7 @@ function run(task) {
if (!execCode || actualCode) {
result = babel.transform(actualCode, getOpts(actual));
if (!expect.code && result.code && !opts.throws && 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 {
actualCode = result.code.trim();

View File

@@ -175,11 +175,11 @@ export default function ({ types: t }) {
let nodeWithoutSpread = t.clone(path.node);
nodeWithoutSpread.right = ref;
nodes.push(t.expressionStatement(nodeWithoutSpread));
nodes.push(t.assignmentExpression(
nodes.push(t.toStatement(t.assignmentExpression(
"=",
argument,
callExpression
));
)));
if (ref) {
nodes.push(t.expressionStatement(ref));

View File

@@ -1,5 +1,5 @@
({ a } = c);
var _c = c;
({ a } = _c);
b = babelHelpers.objectWithoutProperties(_c, ["a"])
b = babelHelpers.objectWithoutProperties(_c, ["a"]);
_c;