/
prefer-named-capture-group.js
95 lines (88 loc) · 2.7 KB
/
prefer-named-capture-group.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/**
* @fileoverview Tests for prefer-named-capture-group rule.
* @author Pig Fang <https://github.com/g-plane>
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const rule = require("../../../lib/rules/prefer-named-capture-group"),
RuleTester = require("../../../lib/testers/rule-tester");
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2018 } });
ruleTester.run("prefer-named-capture-group", rule, {
valid: [
"/normal_regex/",
"/(?:[0-9]{4})/",
"/(?<year>[0-9]{4})/",
"/\\u{1F680}/u",
"new RegExp()",
"new RegExp(foo)",
"new RegExp('')",
"new RegExp('(?<year>[0-9]{4})')",
"RegExp()",
"RegExp(foo)",
"RegExp('')",
"RegExp('(?<year>[0-9]{4})')",
"RegExp('(')", // invalid regexp should be ignored
"RegExp('\\\\u{1F680}', 'u')"
],
invalid: [
{
code: "/([0-9]{4})/",
errors: [{
messageId: "required",
type: "Literal",
data: { group: "([0-9]{4})" },
line: 1,
column: 2,
endColumn: 12
}]
},
{
code: "new RegExp('([0-9]{4})')",
errors: [{
messageId: "required",
type: "NewExpression",
data: { group: "([0-9]{4})" },
line: 1,
column: 13,
endColumn: 23
}]
},
{
code: "RegExp('([0-9]{4})')",
errors: [{
messageId: "required",
type: "CallExpression",
data: { group: "([0-9]{4})" },
line: 1,
column: 9,
endColumn: 19
}]
},
{
code: "/([0-9]{4})-(\\w{5})/",
errors: [
{
messageId: "required",
type: "Literal",
data: { group: "([0-9]{4})" },
line: 1,
column: 2,
endColumn: 12
},
{
messageId: "required",
type: "Literal",
data: { group: "(\\w{5})" },
line: 1,
column: 13,
endColumn: 20
}
]
}
]
});