Skip to content

Commit

Permalink
Changed babel options to avoid extra lines in report (closes #1226) (#…
Browse files Browse the repository at this point in the history
…1236)

* Changed babel options to avoid extra lines in report (closes #1226)

* Approach changed, added regression test for gh-969

* another one approach

* One more approach

* Remarks fixed
  • Loading branch information
georgiy-abbasov authored and inikulin committed Feb 21, 2017
1 parent 43d4e5c commit 96bf9c4
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src/compiler/es-next/compile-client-function.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const ANONYMOUS_FN_RE = /^function\*?\s*\(/;
const USE_STRICT_RE = /^('|")use strict('|");?/;
const TRAILING_SEMICOLON_RE = /;\s*$/;
const REGENERATOR_FOOTPRINTS_RE = /(_index\d+\.default|_regenerator\d+\.default|regeneratorRuntime)\.wrap\(function _callee\$\(_context\)/;
const ASYNC_TO_GENERATOR_OUTPUT_CODE = asyncToGenerator(noop).toString().replace(/\n\s*/g, '');
const ASYNC_TO_GENERATOR_OUTPUT_CODE = asyncToGenerator(noop).toString();

var babelArtifactPolyfills = {
'Promise': {
Expand Down
7 changes: 3 additions & 4 deletions src/compiler/es-next/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ export default class ESNextCompiler {
return {
passPerPreset: true,
presets: [
{ plugins: transformRuntime },
{
passPerPreset: false,
presets: [presetStage2, presetEnv]
presets: [{ plugins: [transformRuntime] }, presetStage2, presetEnv]
}
],
filename: filename,
Expand Down Expand Up @@ -71,8 +70,8 @@ export default class ESNextCompiler {

static _isNodeModulesDep (filename) {
return relative(CWD, filename)
.split(pathSep)
.indexOf('node_modules') >= 0;
.split(pathSep)
.indexOf('node_modules') >= 0;
}

static _execAsModule (code, filename) {
Expand Down
67 changes: 52 additions & 15 deletions test/server/compiler-test.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
var expect = require('chai').expect;
var resolve = require('path').resolve;
var sep = require('path').sep;
var readFile = require('fs').readFileSync;
var Promise = require('pinkie');
var stackParser = require('error-stack-parser');
var stripAnsi = require('strip-ansi');
var sortBy = require('lodash').sortBy;
var renderers = require('callsite-record').renderers;
var ERR_TYPE = require('../../lib/errors/test-run/type');
var Compiler = require('../../lib/compiler');
var commonAPI = require('../../lib/api/common');
var NODE_VER = require('../../lib/utils/node-version');
var expect = require('chai').expect;
var resolve = require('path').resolve;
var sep = require('path').sep;
var readFile = require('fs').readFileSync;
var Promise = require('pinkie');
var stackParser = require('error-stack-parser');
var stripAnsi = require('strip-ansi');
var sortBy = require('lodash').sortBy;
var renderers = require('callsite-record').renderers;
var ERR_TYPE = require('../../lib/errors/test-run/type');
var Compiler = require('../../lib/compiler');
var commonAPI = require('../../lib/api/common');
var NODE_VER = require('../../lib/utils/node-version');
var createStackFilter = require('../../lib/errors/create-stack-filter.js');

describe('Compiler', function () {
var testRunMock = { id: 'yo' };
Expand Down Expand Up @@ -1320,8 +1321,6 @@ describe('Compiler', function () {

describe('Regression', function () {
it('Incorrect callsite line in error report on node v0.10.41 (GH-599)', function () {
this.timeout(5000);

var src = 'test/server/data/test-suites/regression-gh-599/testfile.js';
var compiler = new Compiler([src]);

Expand All @@ -1341,5 +1340,43 @@ describe('Compiler', function () {
expect(callsite).contains(' > 19 | .method1()\n');
});
});

it('Should successfully compile tests if re-export is used', function () {
var src = 'test/server/data/test-suites/regression-gh-969/testfile.js';
var compiler = new Compiler([src]);

return compiler
.getTests()
.then(function (tests) {
var test = tests[0];

return test.fn(testRunMock);
});
});

it('Incorrect callsite stack in error report if "import" is used (GH-1226)', function () {
var src = 'test/server/data/test-suites/regression-gh-1226/testfile.js';
var compiler = new Compiler([src]);

return compiler
.getTests()
.then(function (tests) {
var test = tests[0];

return test.fn(testRunMock);
})
.then(function () {
throw 'Promise rejection expected';
})
.catch(function (err) {
var stackTraceLimit = 200;
var stack = err.callsite.stackFrames.filter(createStackFilter(stackTraceLimit));

expect(stack.length).eql(3);
expect(stack[0].source).to.have.string('helper.js');
expect(stack[1].source).to.have.string('helper.js');
expect(stack[2].source).to.have.string('testfile.js');
});
});
});
});
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
(function () {
var_typeof3 = {
default: function (obj) {
return typeof obj;
}
};
return (function () {
return typeof someObj === "undefined" ? "undefined" : _typeof(someObj);
return typeof someObj === "undefined" ? "undefined" : (0, _typeof3.default)(someObj);
});
})();
3 changes: 3 additions & 0 deletions test/server/data/test-suites/regression-gh-1226/helper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default async function (t) {
throw new Error();
}
8 changes: 8 additions & 0 deletions test/server/data/test-suites/regression-gh-1226/testfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import help from './helper.js';

fixture `Test`
.page `http://example.com`;

test('test', async t => {
await help(t);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const FOO = 42;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './consts'
8 changes: 8 additions & 0 deletions test/server/data/test-suites/regression-gh-969/testfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { expect } from 'chai';
import * as app from './helpers/module.js';

fixture('Export Issue');

test('re-export', async() => {
expect(app.FOO).to.eql(42);
});

0 comments on commit 96bf9c4

Please sign in to comment.