@@ -8,12 +8,19 @@ const ruleTester = avaRuleTester(test, {
88 }
99} ) ;
1010
11+ const babelRuleTester = avaRuleTester ( test , {
12+ parser : require . resolve ( 'babel-eslint' )
13+ } ) ;
14+ const typescriptRuleTester = avaRuleTester ( test , {
15+ parser : require . resolve ( '@typescript-eslint/parser' )
16+ } ) ;
17+
1118const error = {
1219 ruleId : 'no-hex-escape' ,
1320 message : 'Use Unicode escapes instead of hexadecimal escapes.'
1421} ;
1522
16- ruleTester . run ( 'no-hex-escape' , rule , {
23+ const tests = {
1724 valid : [
1825 'const foo = \'foo\'' ,
1926 'const foo = \'\\u00b1\'' ,
@@ -117,6 +124,11 @@ ruleTester.run('no-hex-escape', rule, {
117124 errors : [ error ] ,
118125 output : 'const foo = \'42\\\\\\u001242\\\\\\u0034\''
119126 } ,
127+ {
128+ code : 'const foo = /^[\\x20-\\x7E]*$/' ,
129+ errors : [ error ] ,
130+ output : 'const foo = /^[\\u0020-\\u007E]*$/'
131+ } ,
120132 // Test template literals
121133 {
122134 code : 'const foo = `\\xb1`' ,
@@ -187,6 +199,17 @@ ruleTester.run('no-hex-escape', rule, {
187199 code : 'const foo = `42\\\\\\x1242\\\\\\x34`' ,
188200 errors : [ error ] ,
189201 output : 'const foo = `42\\\\\\u001242\\\\\\u0034`'
202+ } ,
203+ {
204+ // eslint-disable-next-line no-template-curly-in-string
205+ code : 'const foo = `\\xb1${foo}\\xb1${foo}`' ,
206+ errors : [ error , error ] ,
207+ // eslint-disable-next-line no-template-curly-in-string
208+ output : 'const foo = `\\u00b1${foo}\\u00b1${foo}`'
190209 }
191210 ]
192- } ) ;
211+ } ;
212+
213+ ruleTester . run ( 'no-hex-escape' , rule , tests ) ;
214+ babelRuleTester . run ( 'no-hex-escape' , rule , tests ) ;
215+ typescriptRuleTester . run ( 'no-hex-escape' , rule , tests ) ;
0 commit comments