@@ -6,11 +6,11 @@ Subject: test: fix edge snapshot stack traces
6
6
https://github.com/nodejs/node/pull/49659
7
7
8
8
diff --git a/test/common/assertSnapshot.js b/test/common/assertSnapshot.js
9
- index83ee45f5f906adddcbc701112f373332dd1f66f9..7b6a9d59bfaa0247f4466277097cd5575ff81d0c 100644
9
+ index838ee86f74ea89e052676a5c25e23481369857fa..3aacfa064561c64c218fcc4e3090f7952cb1d218 100644
10
10
--- a/test/common/assertSnapshot.js
11
11
+++ b/test/common/assertSnapshot.js
12
12
@@ -8,6 +8,10 @@ const assert = require('node:assert/strict');
13
- const stackFramesRegexp = /(\s+)((.+?)\s+\()?(?:\(?(.+?):(\d+)(?::(\d+))?)\)?(\s+\{)?(\[\d+m)?(\n|$)/g;
13
+ const stackFramesRegexp = /(?<=\n)( \s+)((.+?)\s+\()?(?:\(?(.+?):(\d+)(?::(\d+))?)\)?(\s+\{)?(\[\d+m)?(\n|$)/g;
14
14
const windowNewlineRegexp = /\r/g;
15
15
16
16
+ function replaceNodeVersion(str) {
@@ -20,14 +20,14 @@ index 83ee45f5f906adddcbc701112f373332dd1f66f9..7b6a9d59bfaa0247f4466277097cd557
20
20
function replaceStackTrace(str, replacement = '$1*$7$8\n') {
21
21
return str.replace(stackFramesRegexp, replacement);
22
22
}
23
- @@ -70 ,6 +74 ,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ...
23
+ @@ -84 ,6 +88 ,7 @@ async function spawnAndAssert(filename, transform = (x) => x, { tty = false, ...
24
24
module.exports = {
25
25
assertSnapshot,
26
26
getSnapshotPath,
27
27
+ replaceNodeVersion,
28
+ replaceFullPaths,
28
29
replaceStackTrace,
29
30
replaceWindowsLineEndings,
30
- replaceWindowsPaths,
31
31
diff --git a/test/fixtures/errors/force_colors.snapshot b/test/fixtures/errors/force_colors.snapshot
32
32
index 4c33acbc2d5c12ac8750b72e0796284176af3da2..21410d492db861876ecfcb82dcc3c1815cba6d09 100644
33
33
--- a/test/fixtures/errors/force_colors.snapshot
@@ -36,11 +36,11 @@ index 4c33acbc2d5c12ac8750b72e0796284176af3da2..21410d492db861876ecfcb82dcc3c181
36
36
37
37
Error: Should include grayed stack trace
38
38
at Object.<anonymous> [90m(/[39mtest*force_colors.js:1:7[90m)[39m
39
- - [90m at Module._compile (node:internal*modules*cjs*loader:1256 :14)[39m
40
- - [90m at Module._extensions..js (node:internal*modules*cjs*loader:1310 :10)[39m
41
- - [90m at Module.load (node:internal*modules*cjs*loader:1119 :32)[39m
42
- - [90m at Module._load (node:internal*modules*cjs*loader:960 :12)[39m
43
- - [90m at Function.executeUserEntryPoint [as runMain] (node:internal*modules*run_main:86 :12)[39m
39
+ - [90m at Module._compile (node:internal*modules*cjs*loader:1241 :14)[39m
40
+ - [90m at Module._extensions..js (node:internal*modules*cjs*loader:1295 :10)[39m
41
+ - [90m at Module.load (node:internal*modules*cjs*loader:1091 :32)[39m
42
+ - [90m at Module._load (node:internal*modules*cjs*loader:938 :12)[39m
43
+ - [90m at Function.executeUserEntryPoint [as runMain] (node:internal*modules*run_main:83 :12)[39m
44
44
- [90m at node:internal*main*run_main_module:23:47[39m
45
45
+ [90m at *[39m
46
46
+ [90m at *[39m
@@ -52,13 +52,14 @@ index 4c33acbc2d5c12ac8750b72e0796284176af3da2..21410d492db861876ecfcb82dcc3c181
52
52
53
53
Node.js *
54
54
diff --git a/test/parallel/test-node-output-errors.mjs b/test/parallel/test-node-output-errors.mjs
55
- indexb9a55fb7ea22e62553f69bd035797f7aaee1fc38..1f5ce52cf674cfc5fb75ad2cd979752a991c7e28 100644
55
+ indexb08bcd40cdf26093e158c0bb9ae566c76f2c731e..bf8eacbac479a2bf5698ed29ede648e149f185b5 100644
56
56
--- a/test/parallel/test-node-output-errors.mjs
57
57
+++ b/test/parallel/test-node-output-errors.mjs
58
- @@ -10,14 +10,15 @@ const skipForceColors =
58
+ @@ -10,15 +10,15 @@ const skipForceColors =
59
+ process.config.variables.node_shared_openssl ||
59
60
(common.isWindows && (Number(os.release().split('.')[0]) !== 10 || Number(os.release().split('.')[2]) < 14393)); // See https://github.com/nodejs/node/pull/33132
60
61
61
-
62
+ -
62
63
- function replaceNodeVersion(str) {
63
64
- return str.replaceAll(process.version, '*');
64
65
- }
@@ -74,8 +75,8 @@ index b9a55fb7ea22e62553f69bd035797f7aaee1fc38..1f5ce52cf674cfc5fb75ad2cd979752a
74
75
+
75
76
describe('errors output', { concurrency: true }, () => {
76
77
function normalize(str) {
77
- return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '').replaceAll('//', '*').replaceAll(/\/(\w)/g, '*$1').replaceAll('*test*', '*').replaceAll('*fixtures*errors*', '*').replaceAll('file:**', 'file:*/');
78
- @@ -28 ,9 +29 ,12 @@ describe('errors output', { concurrency: true }, () => {
78
+ return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '')
79
+ @@ -35 ,9 +35 ,12 @@ describe('errors output', { concurrency: true }, () => {
79
80
}
80
81
const common = snapshot
81
82
.transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths);
@@ -91,19 +92,19 @@ index b9a55fb7ea22e62553f69bd035797f7aaee1fc38..1f5ce52cf674cfc5fb75ad2cd979752a
91
92
92
93
const tests = [
93
94
{ name: 'errors/async_error_eval_cjs.js' },
94
- @@ -50 ,7 +54 ,11 @@ describe('errors output', { concurrency: true }, () => {
95
+ @@ -57 ,7 +60 ,11 @@ describe('errors output', { concurrency: true }, () => {
95
96
{ name: 'errors/throw_in_line_with_tabs.js', transform: errTransform },
96
97
{ name: 'errors/throw_non_error.js', transform: errTransform },
97
98
{ name: 'errors/promise_always_throw_unhandled.js', transform: promiseTransform },
98
- - !skipForceColors ? { name: 'errors/force_colors.js', env: { FORCE_COLOR: 1 } } : null ,
99
+ - { skip: skipForceColors, name: 'errors/force_colors.js', env: { FORCE_COLOR: 1 } },
99
100
+ !skipForceColors ? {
100
101
+ name: 'errors/force_colors.js',
101
102
+ transform: forceColorsTransform,
102
103
+ env: { FORCE_COLOR: 1 }
103
104
+ } : null,
104
- ].filter(Boolean) ;
105
- for (const { name, transform, env } of tests) {
106
- if (env) env.ELECTRON_RUN_AS_NODE = 1;
105
+ ];
106
+ for (const { name, transform = defaultTransform , env, skip = false } of tests) {
107
+ it(name, { skip }, async () => {
107
108
diff --git a/test/parallel/test-node-output-sourcemaps.mjs b/test/parallel/test-node-output-sourcemaps.mjs
108
109
index 8e43947ab2188f087056eab39d0e1a11481f9da5..c53a0598958e4e386db1993caeb312dae3f302a8 100644
109
110
--- a/test/parallel/test-node-output-sourcemaps.mjs