3
3
*/
4
4
'use strict'
5
5
6
+ const semver = require ( 'semver' )
6
7
const { RuleTester } = require ( '../../eslint-compat' )
7
8
const rule = require ( '../../../lib/rules/func-call-spacing' )
9
+ const { eslintStylisticVersion } = require ( '../../test-utils/eslint-stylistic' )
8
10
9
11
const tester = new RuleTester ( {
10
12
languageOptions : { parser : require ( 'vue-eslint-parser' ) , ecmaVersion : 2020 }
11
13
} )
12
14
15
+ /**
16
+ * @param {number } line
17
+ * @param {number } column
18
+ * @param {'unexpected' | 'missing' } errorType
19
+ * @returns {{line: number, column: number, endLine: number, endColumn: number} }
20
+ */
21
+ function getErrorPosition ( line , column , errorType ) {
22
+ if ( eslintStylisticVersion === undefined ) {
23
+ return {
24
+ line,
25
+ column : errorType === 'unexpected' ? column : column - 1 ,
26
+ endLine : line ,
27
+ endColumn : column
28
+ }
29
+ }
30
+
31
+ if ( semver . lt ( eslintStylisticVersion , '3.0.0' ) ) {
32
+ return {
33
+ line,
34
+ column : column - 3 ,
35
+ endLine : undefined ,
36
+ endColumn : undefined
37
+ }
38
+ }
39
+
40
+ if ( semver . satisfies ( process . version , '<19.0.0 || ^21.0.0' ) ) {
41
+ return {
42
+ line,
43
+ column : errorType === 'unexpected' ? column : column - 1 ,
44
+ endLine : line ,
45
+ endColumn : column
46
+ }
47
+ }
48
+
49
+ return {
50
+ line,
51
+ column,
52
+ endLine : line ,
53
+ endColumn : errorType === 'unexpected' ? column + 1 : column
54
+ }
55
+ }
56
+
13
57
tester . run ( 'func-call-spacing' , rule , {
14
58
valid : [
15
59
`
@@ -61,7 +105,7 @@ tester.run('func-call-spacing', rule, {
61
105
errors : [
62
106
{
63
107
message : 'Unexpected whitespace between function name and paren.' ,
64
- line : 3
108
+ ... getErrorPosition ( 3 , 23 , 'unexpected' )
65
109
}
66
110
]
67
111
} ,
@@ -80,7 +124,7 @@ tester.run('func-call-spacing', rule, {
80
124
errors : [
81
125
{
82
126
message : 'Missing space between function name and paren.' ,
83
- line : 3
127
+ ... getErrorPosition ( 3 , 23 , 'missing' )
84
128
}
85
129
]
86
130
} ,
@@ -102,7 +146,7 @@ tester.run('func-call-spacing', rule, {
102
146
errors : [
103
147
{
104
148
message : 'Unexpected whitespace between function name and paren.' ,
105
- line : 4
149
+ ... getErrorPosition ( 4 , 27 , 'unexpected' )
106
150
}
107
151
]
108
152
}
0 commit comments