Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 5 commits into from
Feb 21, 2017
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
69 changes: 56 additions & 13 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 @@ -1341,5 +1342,47 @@ describe('Compiler', function () {
expect(callsite).contains(' > 19 | .method1()\n');
});
});

it('Should successfully compile tests if re-export is used', function () {
this.timeout(5000);

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 () {
this.timeout(5000);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can remove the timeout here because it's defined at the top-level


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