From ac4e1a9f01d671c71ccbf15a34c59e2be19da98a Mon Sep 17 00:00:00 2001 From: Dieter Oberkofler Date: Thu, 1 Mar 2018 20:06:52 +0100 Subject: [PATCH] fix(reporter): Fix issue causing error stack not to be parsed correctly Closes #2930 --- lib/reporter.js | 2 +- test/unit/reporter.spec.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/reporter.js b/lib/reporter.js index 5caedae04..50ee65256 100644 --- a/lib/reporter.js +++ b/lib/reporter.js @@ -9,7 +9,7 @@ var baseReporterDecoratorFactory = require('./reporters/base').decoratorFactory var createErrorFormatter = function (config, emitter, SourceMapConsumer) { var basePath = config.basePath - var urlRoot = config.urlRoot || '' + var urlRoot = config.urlRoot === '/' ? '' : (config.urlRoot || '') var lastServedFiles = [] emitter.on('file_list_modified', function (files) { diff --git a/test/unit/reporter.spec.js b/test/unit/reporter.spec.js index 230817bd3..02f3d0acf 100644 --- a/test/unit/reporter.spec.js +++ b/test/unit/reporter.spec.js @@ -170,6 +170,21 @@ describe('reporter', () => { }) }) + it('should rewrite stack traces (when basePath is empty)', (done) => { + formatError = m.createErrorFormatter({ basePath: '', hostname: 'localhost', port: 123 }, emitter, MockSourceMapConsumer) + var servedFiles = [new File('/a.js'), new File('/b.js')] + servedFiles[0].sourceMap = {content: 'SOURCE MAP a.js'} + servedFiles[1].sourceMap = {content: 'SOURCE MAP b.js'} + + emitter.emit('file_list_modified', {served: servedFiles}) + + _.defer(() => { + var ERROR = 'at http://localhost:123/base/b.js:2:6' + expect(formatError(ERROR)).to.equal('at /original/b.js:4:8 <- b.js:2:6\n') + done() + }) + }) + it('should rewrite stack traces to the first column when no column is given', (done) => { formatError = m.createErrorFormatter({ basePath: '/some/base', hostname: 'localhost', port: 123 }, emitter, MockSourceMapConsumer) var servedFiles = [new File('/some/base/a.js'), new File('/some/base/b.js')]