@@ -2,6 +2,7 @@ import assert from 'node:assert'
2
2
3
3
import { getCallerInfo } from '##/index.js'
4
4
import { fileShortPath } from '##/lib/helper.js'
5
+ import { isNodeGteV23 } from '#@/root.config.js'
5
6
6
7
import { demo } from './34.demo1.js'
7
8
import { demo2 } from './34.demo2.js'
@@ -10,6 +11,7 @@ import { _demo, validateInfo } from './34a.config.js'
10
11
11
12
describe ( fileShortPath ( import . meta. url ) , ( ) => {
12
13
14
+
13
15
describe ( 'getCallerInfo() ' , ( ) => {
14
16
it ( 'distance: 0' , ( ) => {
15
17
const info = getCallerInfo ( 0 )
@@ -18,15 +20,21 @@ describe(fileShortPath(import.meta.url), () => {
18
20
} )
19
21
20
22
it ( 'distance: 1' , ( ) => {
21
- const info = _demo ( )
23
+ const info = _demo ( ) // line23
22
24
validateInfo ( info , import . meta. url )
23
25
assert ( info . line === - 1 , JSON . stringify ( info , null , 2 ) )
24
26
assert ( info . column === - 1 , JSON . stringify ( info , null , 2 ) )
25
27
assert ( info . funcName === '' , JSON . stringify ( info , null , 2 ) )
26
28
assert ( info . methodName === '' , JSON . stringify ( info , null , 2 ) )
27
29
assert ( info . className === 'Context' , JSON . stringify ( info , null , 2 ) )
28
- assert ( info . lineNumber === 15 , JSON . stringify ( info , null , 2 ) )
29
- assert ( info . columnNumber === 26 , JSON . stringify ( info , null , 2 ) )
30
+ if ( isNodeGteV23 ) {
31
+ assert ( info . lineNumber === 23 , JSON . stringify ( info , null , 2 ) )
32
+ assert ( info . columnNumber === 20 , JSON . stringify ( info , null , 2 ) )
33
+ }
34
+ else {
35
+ assert ( info . lineNumber === 16 , JSON . stringify ( info , null , 2 ) )
36
+ assert ( info . columnNumber === 26 , JSON . stringify ( info , null , 2 ) )
37
+ }
30
38
} )
31
39
32
40
it ( 'demo' , ( ) => {
@@ -37,24 +45,37 @@ describe(fileShortPath(import.meta.url), () => {
37
45
assert ( info . funcName === '' , JSON . stringify ( info , null , 2 ) )
38
46
assert ( info . methodName === '' , JSON . stringify ( info , null , 2 ) )
39
47
assert ( info . className === 'Context' , JSON . stringify ( info , null , 2 ) )
40
- assert ( info . lineNumber === 26 , JSON . stringify ( info , null , 2 ) )
41
- assert ( info . columnNumber === 26 , JSON . stringify ( info , null , 2 ) )
48
+ if ( isNodeGteV23 ) {
49
+ assert ( info . lineNumber === 41 , JSON . stringify ( info , null , 2 ) )
50
+ assert ( info . columnNumber === 20 , JSON . stringify ( info , null , 2 ) )
51
+ }
52
+ else {
53
+ assert ( info . lineNumber === 33 , JSON . stringify ( info , null , 2 ) )
54
+ assert ( info . columnNumber === 26 , JSON . stringify ( info , null , 2 ) )
55
+
56
+ }
42
57
} )
43
58
44
- it ( 'demo2' , case22 ) // line44
59
+ it ( 'demo2' , case22 )
45
60
46
61
} )
47
62
} )
48
63
49
64
function case22 ( ) : void {
50
- const info = demo2 ( )
65
+ const info = demo2 ( ) // line65
51
66
validateInfo ( info , 'test/callstack/34.util.getCallerInfo.test.ts' )
52
67
assert ( info . line === - 1 , JSON . stringify ( info , null , 2 ) )
53
68
assert ( info . column === - 1 , JSON . stringify ( info , null , 2 ) )
54
69
assert ( info . funcName === 'case22' , JSON . stringify ( info , null , 2 ) )
55
70
assert ( info . methodName === 'case22' , JSON . stringify ( info , null , 2 ) )
56
71
assert ( info . className === 'Context' , JSON . stringify ( info , null , 2 ) )
57
- assert ( info . lineNumber === 40 , JSON . stringify ( info , null , 2 ) )
58
- assert ( info . columnNumber === 18 , JSON . stringify ( info , null , 2 ) )
72
+ if ( isNodeGteV23 ) {
73
+ assert ( info . lineNumber === 65 , JSON . stringify ( info , null , 2 ) )
74
+ assert ( info . columnNumber === 16 , JSON . stringify ( info , null , 2 ) )
75
+ }
76
+ else {
77
+ assert ( info . lineNumber === 53 , JSON . stringify ( info , null , 2 ) )
78
+ assert ( info . columnNumber === 18 , JSON . stringify ( info , null , 2 ) )
79
+ }
59
80
}
60
81
0 commit comments