blob: 16688f58eace6df23784775959a89a3a2e523e15 [file]
// 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';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(UnnecessaryStringInterpolationsTest);
});
}
@reflectiveTest
class UnnecessaryStringInterpolationsTest extends LintRuleTest {
@override
String get lintRule => LintNames.unnecessary_string_interpolations;
test_necessaryInterpolation_adjacentStrings() async {
await assertNoDiagnostics(r'''
var a = '';
var b = 'x' '$a';
''');
}
test_necessaryInterpolation_nullableString() async {
await assertNoDiagnostics(r'''
class Node {
String? x = '';
String f() => '$x';
}
''');
}
test_necessaryInterpolation_property() async {
await assertNoDiagnostics(r'''
var a = '';
var b = '${a.length}';
''');
}
test_necessaryInterpolation_single() async {
await assertNoDiagnostics(r'''
var a = '';
var b = 'x$a';
''');
}
test_necessaryInterpolation_triple() async {
await assertNoDiagnostics(r"""
var a = '';
var b = '''x$a''';
""");
}
test_unnecessaryInterpolation_single() async {
await assertDiagnosticsFromMarkup(r'''
var a = '';
var b = [!'$a'!];
''');
}
test_unnecessaryInterpolation_substring() async {
await assertDiagnosticsFromMarkup(r'''
var a = '';
var b = [!'${a.substring(1)}'!];
''');
}
test_unnecessaryInterpolation_triple() async {
await assertDiagnosticsFromMarkup(r"""
var a = '';
var b = [!'''$a'''!];
""");
}
test_unnecessaryInterpolation_withBraces() async {
await assertDiagnosticsFromMarkup(r'''
var a = '';
var b = [!'${a}'!];
''');
}
}