summaryrefslogtreecommitdiff
path: root/test/parallel/test-source-map.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/parallel/test-source-map.js')
-rw-r--r--test/parallel/test-source-map.js97
1 files changed, 90 insertions, 7 deletions
diff --git a/test/parallel/test-source-map.js b/test/parallel/test-source-map.js
index de728c05bf..41a315e3f8 100644
--- a/test/parallel/test-source-map.js
+++ b/test/parallel/test-source-map.js
@@ -30,7 +30,7 @@ function nextdir() {
assert.strictEqual(output.status, 0);
assert.strictEqual(output.stderr.toString(), '');
const sourceMap = getSourceMapFromCache('basic.js', coverageDirectory);
- assert.strictEqual(sourceMap.url, 'https://http.cat/418');
+ assert.strictEqual(sourceMap.url, 'https://ci.nodejs.org/418');
}
// Outputs source maps when process.kill(process.pid, "SIGINT"); exits process.
@@ -47,7 +47,7 @@ function nextdir() {
}
assert.strictEqual(output.stderr.toString(), '');
const sourceMap = getSourceMapFromCache('sigint.js', coverageDirectory);
- assert.strictEqual(sourceMap.url, 'https://http.cat/402');
+ assert.strictEqual(sourceMap.url, 'https://ci.nodejs.org/402');
}
// Outputs source maps when source-file calls process.exit(1).
@@ -58,7 +58,7 @@ function nextdir() {
], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } });
assert.strictEqual(output.stderr.toString(), '');
const sourceMap = getSourceMapFromCache('exit-1.js', coverageDirectory);
- assert.strictEqual(sourceMap.url, 'https://http.cat/404');
+ assert.strictEqual(sourceMap.url, 'https://ci.nodejs.org/404');
}
// Outputs source-maps for esm module.
@@ -71,7 +71,7 @@ function nextdir() {
], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } });
assert.strictEqual(output.stderr.toString(), '');
const sourceMap = getSourceMapFromCache('esm-basic.mjs', coverageDirectory);
- assert.strictEqual(sourceMap.url, 'https://http.cat/405');
+ assert.strictEqual(sourceMap.url, 'https://ci.nodejs.org/405');
}
// Loads source-maps with relative path from .map file on disk.
@@ -116,12 +116,95 @@ function nextdir() {
);
}
+// Does not apply source-map to stack trace if --experimental-modules
+// is not set.
+{
+ const output = spawnSync(process.execPath, [
+ require.resolve('../fixtures/source-map/uglify-throw.js')
+ ]);
+ assert.strictEqual(
+ output.stderr.toString().match(/->.*uglify-throw-original\.js:5:9/),
+ null
+ );
+ assert.strictEqual(
+ output.stderr.toString().match(/->.*uglify-throw-original\.js:9:3/),
+ null
+ );
+}
+
+// Applies source-maps generated by uglifyjs to stack trace.
+{
+ const output = spawnSync(process.execPath, [
+ '--enable-source-maps',
+ require.resolve('../fixtures/source-map/uglify-throw.js')
+ ]);
+ assert.ok(
+ output.stderr.toString().match(/->.*uglify-throw-original\.js:5:9/)
+ );
+ assert.ok(
+ output.stderr.toString().match(/->.*uglify-throw-original\.js:9:3/)
+ );
+}
+
+// Applies source-maps generated by tsc to stack trace.
+{
+ const output = spawnSync(process.execPath, [
+ '--enable-source-maps',
+ require.resolve('../fixtures/source-map/typescript-throw.js')
+ ]);
+ assert.ok(output.stderr.toString().match(/->.*typescript-throw\.ts:18:11/));
+ assert.ok(output.stderr.toString().match(/->.*typescript-throw\.ts:24:1/));
+}
+
+// Applies source-maps generated by babel to stack trace.
+{
+ const output = spawnSync(process.execPath, [
+ '--enable-source-maps',
+ require.resolve('../fixtures/source-map/babel-throw.js')
+ ]);
+ assert.ok(
+ output.stderr.toString().match(/->.*babel-throw-original\.js:18:31/)
+ );
+}
+
+// Applies source-maps generated by nyc to stack trace.
+{
+ const output = spawnSync(process.execPath, [
+ '--enable-source-maps',
+ require.resolve('../fixtures/source-map/istanbul-throw.js')
+ ]);
+ assert.ok(
+ output.stderr.toString().match(/->.*istanbul-throw-original\.js:5:9/)
+ );
+ assert.ok(
+ output.stderr.toString().match(/->.*istanbul-throw-original\.js:9:3/)
+ );
+}
+
+// Applies source-maps in esm modules to stack trace.
+{
+ const output = spawnSync(process.execPath, [
+ '--enable-source-maps',
+ '--experimental-modules',
+ require.resolve('../fixtures/source-map/babel-esm.mjs')
+ ]);
+ assert.ok(
+ output.stderr.toString().match(/->.*babel-esm-original\.mjs:9:29/)
+ );
+}
+
function getSourceMapFromCache(fixtureFile, coverageDirectory) {
const jsonFiles = fs.readdirSync(coverageDirectory);
for (const jsonFile of jsonFiles) {
- const maybeSourceMapCache = require(
- path.join(coverageDirectory, jsonFile)
- )['source-map-cache'] || {};
+ let maybeSourceMapCache;
+ try {
+ maybeSourceMapCache = require(
+ path.join(coverageDirectory, jsonFile)
+ )['source-map-cache'] || {};
+ } catch (err) {
+ console.warn(err);
+ maybeSourceMapCache = {};
+ }
const keys = Object.keys(maybeSourceMapCache);
for (const key of keys) {
if (key.includes(fixtureFile)) {