Fix bug + Generate test fixtures if no expected.js (#4858)
This commit is contained in:
2
packages/babel-core/test/fixtures/transformation/misc/regression-4855/actual.js
vendored
Normal file
2
packages/babel-core/test/fixtures/transformation/misc/regression-4855/actual.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
({ [fieldName]: value, ...rest } = values);
|
||||
let error;
|
||||
7
packages/babel-core/test/fixtures/transformation/misc/regression-4855/expected.js
vendored
Normal file
7
packages/babel-core/test/fixtures/transformation/misc/regression-4855/expected.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var _values = values;
|
||||
value = _values[fieldName];
|
||||
rest = babelHelpers.objectWithoutProperties(_values, [fieldName]);
|
||||
|
||||
var error = void 0;
|
||||
4
packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json
vendored
Normal file
4
packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"compact": false,
|
||||
"presets": ["es2015","stage-2"]
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
({ a } = c);
|
||||
var _c = c;
|
||||
({ a } = _c);
|
||||
b = babelHelpers.objectWithoutProperties(_c, ["a"])
|
||||
b = babelHelpers.objectWithoutProperties(_c, ["a"]);
|
||||
_c;
|
||||
|
||||
Reference in New Issue
Block a user