33 */
44'use strict'
55
6+ const semver = require ( 'semver' )
67const { RuleTester } = require ( '../../eslint-compat' )
78const rule = require ( '../../../lib/rules/func-call-spacing' )
9+ const { eslintStylisticVersion } = require ( '../../test-utils/eslint-stylistic' )
810
911const tester = new RuleTester ( {
1012 languageOptions : { parser : require ( 'vue-eslint-parser' ) , ecmaVersion : 2020 }
1113} )
1214
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+ return {
41+ line,
42+ column,
43+ endLine : line ,
44+ endColumn : errorType === 'unexpected' ? column + 1 : column
45+ }
46+ }
47+
1348tester . run ( 'func-call-spacing' , rule , {
1449 valid : [
1550 `
@@ -61,7 +96,7 @@ tester.run('func-call-spacing', rule, {
6196 errors : [
6297 {
6398 message : 'Unexpected whitespace between function name and paren.' ,
64- line : 3
99+ ... getErrorPosition ( 3 , 23 , 'unexpected' )
65100 }
66101 ]
67102 } ,
@@ -80,7 +115,7 @@ tester.run('func-call-spacing', rule, {
80115 errors : [
81116 {
82117 message : 'Missing space between function name and paren.' ,
83- line : 3
118+ ... getErrorPosition ( 3 , 23 , 'missing' )
84119 }
85120 ]
86121 } ,
@@ -102,7 +137,7 @@ tester.run('func-call-spacing', rule, {
102137 errors : [
103138 {
104139 message : 'Unexpected whitespace between function name and paren.' ,
105- line : 4
140+ ... getErrorPosition ( 4 , 27 , 'unexpected' )
106141 }
107142 ]
108143 }
0 commit comments