]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-control-regex.js
2 * @fileoverview Tests for no-control-regex rule.
3 * @author Nicholas C. Zakas
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-control-regex"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-control-regex", rule
, {
24 String
.raw
`var regex = /\\x1f/`,
25 "var regex = new RegExp('x1f')",
26 "var regex = RegExp('x1f')",
29 "new (function foo(){})('\\x1f')",
30 { code
: String
.raw
`/\u{20}/u`, parserOptions
: { ecmaVersion
: 2015 } },
32 String
.raw
`/\u{1F}/g`,
33 String
.raw
`new RegExp("\\u{20}", "u")`,
34 String
.raw
`new RegExp("\\u{1F}")`,
35 String
.raw
`new RegExp("\\u{1F}", "g")`,
36 String
.raw
`new RegExp("\\u{1F}", flags)` // when flags are unknown, this rule assumes there's no `u` flag
39 { code
: String
.raw
`var regex = /\x1f/`, errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }] },
40 { code
: String
.raw
`var regex = /\\\x1f\\x1e/`, errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }] },
41 { code
: String
.raw
`var regex = /\\\x1fFOO\\x00/`, errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }] },
42 { code
: String
.raw
`var regex = /FOO\\\x1fFOO\\x1f/`, errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }] },
43 { code
: "var regex = new RegExp('\\x1f\\x1e')", errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f, \\x1e" }, type
: "Literal" }] },
44 { code
: "var regex = new RegExp('\\x1fFOO\\x00')", errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f, \\x00" }, type
: "Literal" }] },
45 { code
: "var regex = new RegExp('FOO\\x1fFOO\\x1f')", errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f, \\x1f" }, type
: "Literal" }] },
46 { code
: "var regex = RegExp('\\x1f')", errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }] },
48 code
: "var regex = /(?<a>\\x1f)/",
49 parserOptions
: { ecmaVersion
: 2018 },
50 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
53 code
: String
.raw
`var regex = /(?<\u{1d49c}>.)\x1f/`,
54 parserOptions
: { ecmaVersion
: 2020 },
55 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
58 code
: String
.raw
`new RegExp("\\u001F", flags)`,
59 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
62 code
: String
.raw
`/\u{1111}*\x1F/u`,
63 parserOptions
: { ecmaVersion
: 2015 },
64 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
67 code
: String
.raw
`new RegExp("\\u{1111}*\\x1F", "u")`,
68 parserOptions
: { ecmaVersion
: 2015 },
69 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
72 code
: String
.raw
`/\u{1F}/u`,
73 parserOptions
: { ecmaVersion
: 2015 },
74 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
77 code
: String
.raw
`/\u{1F}/gui`,
78 parserOptions
: { ecmaVersion
: 2015 },
79 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
82 code
: String
.raw
`new RegExp("\\u{1F}", "u")`,
83 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]
86 code
: String
.raw
`new RegExp("\\u{1F}", "gui")`,
87 errors
: [{ messageId
: "unexpected", data
: { controlChars
: "\\x1f" }, type
: "Literal" }]