test: Correct source maps for test failure reporting #9109
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When running browser tests with Karma, failed assertions would produce stack traces pointing to line numbers within the final webpack bundle (e.g.,
chat.test.3891121195.js:26044:55
), rather than the source. This made it difficult and time-consuming to trace the failure back to the original source TypeScript file.Cause:
.ts
compiled to.js
, and source maps are generated in.js.map
files.istanbul-instrument-loader
injects code into the.js
files to generate code coverage reports. Since lines were added to the.js
files, the.js.map
files are made inaccurate.Fix:
The previous
devtool: 'source-map'
config is what instructs webpack to write source maps to a seperate.js.map
file. By changing todevtool: 'inline-source-map'
, the source maps are embedded directly in the JS bundles we load into karma, so the source maps always reflect the state of the.js
bundles.New output:
Old output: