]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/prefer-named-capture-group.js
2 * @fileoverview Tests for prefer-named-capture-group rule.
3 * @author Pig Fang <https://github.com/g-plane>
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/prefer-named-capture-group"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester({ parserOptions
: { ecmaVersion
: 2018 } });
21 ruleTester
.run("prefer-named-capture-group", rule
, {
25 "/(?<year>[0-9]{4})/",
30 "new RegExp('(?<year>[0-9]{4})')",
34 "RegExp('(?<year>[0-9]{4})')",
35 "RegExp('(')", // invalid regexp should be ignored
36 "RegExp('\\\\u{1F680}', 'u')",
37 "new globalThis.RegExp('([0-9]{4})')",
39 code
: "new globalThis.RegExp('([0-9]{4})')",
43 code
: "new globalThis.RegExp('([0-9]{4})')",
47 code
: "new globalThis.RegExp()",
51 code
: "new globalThis.RegExp(foo)",
55 code
: "globalThis.RegExp(foo)",
61 globalThis.RegExp(foo);
69 new globalThis.RegExp(baz);
80 messageId
: "required",
82 data
: { group
: "([0-9]{4})" },
88 messageId
: "addGroupName",
89 output
: "/(?<temp1>[0-9]{4})/"
92 messageId
: "addNonCapture",
93 output
: "/(?:[0-9]{4})/"
99 code
: "new RegExp('([0-9]{4})')",
101 messageId
: "required",
102 type
: "NewExpression",
103 data
: { group
: "([0-9]{4})" },
109 messageId
: "addGroupName",
110 output
: "new RegExp('(?<temp1>[0-9]{4})')"
113 messageId
: "addNonCapture",
114 output
: "new RegExp('(?:[0-9]{4})')"
120 code
: "RegExp('([0-9]{4})')",
122 messageId
: "required",
123 type
: "CallExpression",
124 data
: { group
: "([0-9]{4})" },
130 messageId
: "addGroupName",
131 output
: "RegExp('(?<temp1>[0-9]{4})')"
134 messageId
: "addNonCapture",
135 output
: "RegExp('(?:[0-9]{4})')"
141 code
: "new RegExp(`a(bc)d`)",
143 messageId
: "required",
144 type
: "NewExpression",
145 data
: { group
: "(bc)" },
148 messageId
: "addGroupName",
149 output
: "new RegExp(`a(?<temp1>bc)d`)"
152 messageId
: "addNonCapture",
153 output
: "new RegExp(`a(?:bc)d`)"
159 code
: "new RegExp('\u1234\u5678(?:a)(b)');",
161 messageId
: "required",
162 type
: "NewExpression",
163 data
: { group
: "(b)" },
166 messageId
: "addGroupName",
167 output
: "new RegExp('\u1234\u5678(?:a)(?<temp1>b)');"
170 messageId
: "addNonCapture",
171 output
: "new RegExp('\u1234\u5678(?:a)(?:b)');"
177 code
: "new RegExp('\\u1234\\u5678(?:a)(b)');",
179 messageId
: "required",
180 type
: "NewExpression",
181 data
: { group
: "(b)" },
186 code
: "/([0-9]{4})-(\\w{5})/",
189 messageId
: "required",
191 data
: { group
: "([0-9]{4})" },
197 messageId
: "addGroupName",
198 output
: "/(?<temp1>[0-9]{4})-(\\w{5})/"
201 messageId
: "addNonCapture",
202 output
: "/(?:[0-9]{4})-(\\w{5})/"
207 messageId
: "required",
209 data
: { group
: "(\\w{5})" },
215 messageId
: "addGroupName",
216 output
: "/([0-9]{4})-(?<temp1>\\w{5})/"
219 messageId
: "addNonCapture",
220 output
: "/([0-9]{4})-(?:\\w{5})/"
227 code
: "/([0-9]{4})-(5)/",
230 messageId
: "required",
232 data
: { group
: "([0-9]{4})" },
238 messageId
: "addGroupName",
239 output
: "/(?<temp1>[0-9]{4})-(5)/"
242 messageId
: "addNonCapture",
243 output
: "/(?:[0-9]{4})-(5)/"
248 messageId
: "required",
250 data
: { group
: "(5)" },
256 messageId
: "addGroupName",
257 output
: "/([0-9]{4})-(?<temp1>5)/"
260 messageId
: "addNonCapture",
261 output
: "/([0-9]{4})-(?:5)/"
268 code
: "/(?<temp2>(a))/",
271 messageId
: "required",
273 data
: { group
: "(a)" },
279 messageId
: "addGroupName",
280 output
: "/(?<temp2>(?<temp3>a))/"
283 messageId
: "addNonCapture",
284 output
: "/(?<temp2>(?:a))/"
291 code
: "/(?<temp2>(a)(?<temp5>b))/",
294 messageId
: "required",
296 data
: { group
: "(a)" },
302 messageId
: "addGroupName",
303 output
: "/(?<temp2>(?<temp6>a)(?<temp5>b))/"
306 messageId
: "addNonCapture",
307 output
: "/(?<temp2>(?:a)(?<temp5>b))/"
314 code
: "/(?<temp1>[0-9]{4})-(\\w{5})/",
317 messageId
: "required",
319 data
: { group
: "(\\w{5})" },
325 messageId
: "addGroupName",
326 output
: "/(?<temp1>[0-9]{4})-(?<temp2>\\w{5})/"
329 messageId
: "addNonCapture",
330 output
: "/(?<temp1>[0-9]{4})-(?:\\w{5})/"
337 code
: "/(?<temp1>[0-9]{4})-(5)/",
340 messageId
: "required",
342 data
: { group
: "(5)" },
348 messageId
: "addGroupName",
349 output
: "/(?<temp1>[0-9]{4})-(?<temp2>5)/"
352 messageId
: "addNonCapture",
353 output
: "/(?<temp1>[0-9]{4})-(?:5)/"
360 code
: "/(?<temp1>a)(?<temp2>a)(a)(?<temp3>a)/",
363 messageId
: "required",
365 data
: { group
: "(a)" },
371 messageId
: "addGroupName",
372 output
: "/(?<temp1>a)(?<temp2>a)(?<temp4>a)(?<temp3>a)/"
375 messageId
: "addNonCapture",
376 output
: "/(?<temp1>a)(?<temp2>a)(?:a)(?<temp3>a)/"
383 code
: "new RegExp('(' + 'a)')",
385 messageId
: "required",
386 type
: "NewExpression",
387 data
: { group
: "(a)" },
392 code
: "new RegExp('a(bc)d' + 'e')",
394 messageId
: "required",
395 type
: "NewExpression",
396 data
: { group
: "(bc)" },
401 code
: "new RegExp(\"foo\" + \"(a)\" + \"(b)\");",
404 messageId
: "required",
405 type
: "NewExpression",
406 data
: { group
: "(a)" },
410 messageId
: "required",
411 type
: "NewExpression",
412 data
: { group
: "(b)" },
418 code
: "new RegExp(\"foo\" + \"(?:a)\" + \"(b)\");",
420 messageId
: "required",
421 type
: "NewExpression",
422 data
: { group
: "(b)" },
427 code
: "RegExp('(a)'+'')",
429 messageId
: "required",
430 type
: "CallExpression",
431 data
: { group
: "(a)" },
436 code
: "RegExp( '' + '(ab)')",
438 messageId
: "required",
439 type
: "CallExpression",
440 data
: { group
: "(ab)" },
445 code
: "new RegExp(`(ab)${''}`)",
447 messageId
: "required",
448 type
: "NewExpression",
449 data
: { group
: "(ab)" },
454 code
: "new RegExp(`(a)\n`)",
456 messageId
: "required",
457 type
: "NewExpression",
458 data
: { group
: "(a)" },
465 messageId
: "addGroupName",
466 output
: "new RegExp(`(?<temp1>a)\n`)"
469 messageId
: "addNonCapture",
470 output
: "new RegExp(`(?:a)\n`)"
476 code
: "RegExp(`a(b\nc)d`)",
478 messageId
: "required",
479 type
: "CallExpression",
480 data
: { group
: "(b\nc)" },
483 messageId
: "addGroupName",
484 output
: "RegExp(`a(?<temp1>b\nc)d`)"
487 messageId
: "addNonCapture",
488 output
: "RegExp(`a(?:b\nc)d`)"
494 code
: "new RegExp('a(b)\\'')",
496 messageId
: "required",
497 type
: "NewExpression",
498 data
: { group
: "(b)" },
503 code
: "RegExp('(a)\\\\d')",
505 messageId
: "required",
506 type
: "CallExpression",
507 data
: { group
: "(a)" },
512 code
: "RegExp(`\\a(b)`)",
514 messageId
: "required",
515 type
: "CallExpression",
516 data
: { group
: "(b)" },
521 code
: "new globalThis.RegExp('([0-9]{4})')",
522 env
: { es2020
: true },
524 messageId
: "required",
525 type
: "NewExpression",
526 data
: { group
: "([0-9]{4})" },
532 messageId
: "addGroupName",
533 output
: "new globalThis.RegExp('(?<temp1>[0-9]{4})')"
536 messageId
: "addNonCapture",
537 output
: "new globalThis.RegExp('(?:[0-9]{4})')"
543 code
: "globalThis.RegExp('([0-9]{4})')",
544 env
: { es2020
: true },
546 messageId
: "required",
547 type
: "CallExpression",
548 data
: { group
: "([0-9]{4})" },
554 messageId
: "addGroupName",
555 output
: "globalThis.RegExp('(?<temp1>[0-9]{4})')"
558 messageId
: "addNonCapture",
559 output
: "globalThis.RegExp('(?:[0-9]{4})')"
566 function foo() { var globalThis = bar; }
567 new globalThis.RegExp('([0-9]{4})');
569 env
: { es2020
: true },
571 messageId
: "required",
572 type
: "NewExpression",
573 data
: { group
: "([0-9]{4})" },
579 messageId
: "addGroupName",
581 function foo() { var globalThis = bar; }
582 new globalThis.RegExp('(?<temp1>[0-9]{4})');
586 messageId
: "addNonCapture",
588 function foo() { var globalThis = bar; }
589 new globalThis.RegExp('(?:[0-9]{4})');