@@ -62,23 +62,36 @@ describe.runIf(isServe)('hmr', () => {
62
62
describe . runIf ( isServe ) ( 'stacktrace' , ( ) => {
63
63
const execFileAsync = promisify ( execFile )
64
64
65
- for ( const sourcemapsEnabled of [ false , true ] ) {
66
- test ( `stacktrace is correct when sourcemaps is${
67
- sourcemapsEnabled ? '' : ' not'
68
- } enabled in Node.js`, async ( ) => {
69
- const testStacktraceFile = path . resolve (
70
- __dirname ,
71
- '../test-stacktrace.js' ,
72
- )
65
+ for ( const ext of [ 'js' , 'ts' ] ) {
66
+ for ( const sourcemapsEnabled of [ false , true ] ) {
67
+ test ( `stacktrace of ${ ext } is correct when sourcemaps is${
68
+ sourcemapsEnabled ? '' : ' not'
69
+ } enabled in Node.js`, async ( ) => {
70
+ const testStacktraceFile = path . resolve (
71
+ __dirname ,
72
+ '../test-stacktrace.js' ,
73
+ )
73
74
74
- const p = await execFileAsync ( 'node' , [
75
- testStacktraceFile ,
76
- '' + sourcemapsEnabled ,
77
- ] )
78
- const line = p . stdout
79
- . split ( '\n' )
80
- . find ( ( line ) => line . includes ( 'Module.error' ) )
81
- expect ( line . trim ( ) ) . toMatch ( / [ \\ / ] s r c [ \\ / ] e r r o r \. j s : 2 : 9 / )
82
- } )
75
+ const p = await execFileAsync ( 'node' , [
76
+ testStacktraceFile ,
77
+ '' + sourcemapsEnabled ,
78
+ ext ,
79
+ ] )
80
+ const lines = p . stdout
81
+ . split ( '\n' )
82
+ . filter ( ( line ) => line . includes ( 'Module.error' ) )
83
+
84
+ const reg = new RegExp (
85
+ path
86
+ . resolve ( __dirname , '../src' , `error.${ ext } ` )
87
+ . replace ( / \\ / g, '\\\\' ) + ':2:9' ,
88
+ 'i' ,
89
+ )
90
+
91
+ lines . forEach ( ( line ) => {
92
+ expect ( line . trim ( ) ) . toMatch ( reg )
93
+ } )
94
+ } )
95
+ }
83
96
}
84
97
} )
0 commit comments