blob: f369267548448475e178de5b40ca0774f4fd5ecb [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ValidRegexpsTest);
});
}
@reflectiveTest
class ValidRegexpsTest extends LintRuleTest {
@override
String get lintRule => LintNames.valid_regexps;
test_emojis() async {
// https://stackoverflow.com/questions/61151471/regexp-for-unicode-13-emojis
await assertNoDiagnostics(r'''
var e = RegExp(
r'(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])',
unicode: true);
''');
}
test_interpolation() async {
await assertNoDiagnostics(r'''
var r = '';
var s = RegExp('( $r');
''');
}
test_invalid() async {
await assertDiagnostics(r'''
var s = RegExp('(');
''', [
lint(15, 3),
]);
}
test_valid() async {
await assertNoDiagnostics(r'''
var s = RegExp('[(]');
''');
}
}