diff --git a/tests/lib/rules/no-invalid-regexp.js b/tests/lib/rules/no-invalid-regexp.js index db52a84678e..8f400960d1c 100644 --- a/tests/lib/rules/no-invalid-regexp.js +++ b/tests/lib/rules/no-invalid-regexp.js @@ -86,6 +86,8 @@ ruleTester.run("no-invalid-regexp", rule, { "new RegExp('[A&&B]', 'v')", "new RegExp('[A--[0-9]]', 'v')", "new RegExp('[\\\\p{Basic_Emoji}--\\\\q{a|bc|def}]', 'v')", + "new RegExp('[A--B]', flags)", // valid only with `v` flag + "new RegExp('[[]\\\\u{0}*', flags)", // valid only with `u` flag // allowConstructorFlags { @@ -297,6 +299,14 @@ ruleTester.run("no-invalid-regexp", rule, { }, // ES2024 + { + code: "new RegExp('[[]', 'v');", + errors: [{ + messageId: "regexMessage", + data: { message: "Invalid regular expression: /[[]/u: Unterminated character class" }, + type: "NewExpression" + }] + }, { code: "new RegExp('.', 'uv');", errors: [{ @@ -312,6 +322,22 @@ ruleTester.run("no-invalid-regexp", rule, { data: { message: "Regex 'u' and 'v' flags cannot be used together" }, type: "NewExpression" }] + }, + { + code: "new RegExp('[A--B]' /* valid only with `v` flag */, 'u')", + errors: [{ + messageId: "regexMessage", + data: { message: "Invalid regular expression: /[A--B]/u: Range out of order in character class" }, + type: "NewExpression" + }] + }, + { + code: "new RegExp('[[]\\\\u{0}*' /* valid only with `u` flag */, 'v')", + errors: [{ + messageId: "regexMessage", + data: { message: "Invalid regular expression: /[[]\\u{0}*/u: Unterminated character class" }, + type: "NewExpression" + }] } ] });