From 0407a2280b01972ebcebe9ad341cff87c788975e Mon Sep 17 00:00:00 2001 From: Brian M Hunt Date: Thu, 23 Jul 2015 11:15:21 -0400 Subject: [PATCH] fix(reporter): Ensure errors use the source map. Closes #1495 --- 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 ebf6dc207..9d350f43f 100644 --- a/lib/reporter.js +++ b/lib/reporter.js @@ -21,7 +21,7 @@ var createErrorFormatter = function (basePath, emitter, SourceMapConsumer) { return null } - var URL_REGEXP = new RegExp('http:\\/\\/[^\\/]*\\/' + + var URL_REGEXP = new RegExp('(?:http:\\/\\/[^\\/]*)?\\/?' + '(base|absolute)' + // prefix '((?:[A-z]\\:)?[^\\?\\s\\:]*)' + // path '(\\?\\w*)?' + // sha diff --git a/test/unit/reporter.spec.js b/test/unit/reporter.spec.js index 2d0130731..4d2d128e3 100644 --- a/test/unit/reporter.spec.js +++ b/test/unit/reporter.spec.js @@ -98,6 +98,21 @@ describe('reporter', () => { }, 100)) }) + it('should rewrite relative url stack traces', done => { + formatError = m.createErrorFormatter('/some/base', emitter, MockSourceMapConsumer) + var servedFiles = [new File('/some/base/a.js'), new File('/some/base/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(() => _.delay(() => { + var ERROR = 'at /base/b.js:2:6' + expect(formatError(ERROR)).to.equal('at /some/base/b.js:2:6 <- /original/b.js:4:8\n') + done() + }, 100)) + }) + it('should fall back to non-source-map format if originalPositionFor throws', done => { formatError = m.createErrorFormatter('/some/base', emitter, MockSourceMapConsumer) var servedFiles = [new File('/some/base/a.js'), new File('/some/base/b.js')]