Skip to content

Commit c95fde3

Browse files
DanTupCommit Queue
authored andcommitted
[analysis_server] Ensure all snippet tests verify both selection + linked edit ranges
Removes conditions around verifying selection/linked edit ranges to ensure all snippet tests verify both for completeness (to avoid new tests accidentally not verifying something they should). Change-Id: I9474379a200be12012a71999baa82318b0e904e8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/433820 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent f717a0e commit c95fde3

File tree

4 files changed

+35
-40
lines changed

4 files changed

+35
-40
lines changed

pkg/analysis_server/test/services/snippets/dart/flutter_stateful_widget_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,20 @@ class FlutterStatefulWidgetTest extends FlutterSnippetProducerTest {
3131
var expectedCode = r'''
3232
import 'package:flutter/widgets.dart';
3333
34-
class MyWidget extends StatefulWidget {
35-
const MyWidget({Key? key}) : super(key: key);
34+
class /*0*/MyWidget extends StatefulWidget {
35+
const /*1*/MyWidget({Key? key}) : super(key: key);
3636
3737
@override
38-
State<MyWidget> createState() => _MyWidgetState();
38+
State</*2*/MyWidget> createState() => _/*3*/MyWidgetState();
3939
}
4040
41-
class _MyWidgetState extends State<MyWidget> {
41+
class _/*4*/MyWidgetState extends State</*5*/MyWidget> {
4242
@override
4343
Widget build(BuildContext context) {
44-
return const Placeholder();
44+
return [!const Placeholder()!];
4545
}
4646
}''';
47-
await assertSnippetResult(code, expectedCode);
47+
await assertFlutterSnippetResult(code, expectedCode, 'MyWidget');
4848
}
4949

5050
Future<void> test_notValid_notFlutterProject() async {

pkg/analysis_server/test/services/snippets/dart/flutter_stateful_widget_with_animation_controller_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ class FlutterStatefulWidgetWithAnimationControllerTest
3232
var expectedCode = r'''
3333
import 'package:flutter/widgets.dart';
3434
35-
class MyWidget extends StatefulWidget {
36-
const MyWidget({Key? key}) : super(key: key);
35+
class /*0*/MyWidget extends StatefulWidget {
36+
const /*1*/MyWidget({Key? key}) : super(key: key);
3737
3838
@override
39-
State<MyWidget> createState() => _MyWidgetState();
39+
State</*2*/MyWidget> createState() => _/*3*/MyWidgetState();
4040
}
4141
42-
class _MyWidgetState extends State<MyWidget>
42+
class _/*4*/MyWidgetState extends State</*5*/MyWidget>
4343
with SingleTickerProviderStateMixin {
4444
late AnimationController _controller;
4545
@@ -57,10 +57,10 @@ class _MyWidgetState extends State<MyWidget>
5757
5858
@override
5959
Widget build(BuildContext context) {
60-
return const Placeholder();
60+
return [!const Placeholder()!];
6161
}
6262
}''';
63-
await assertSnippetResult(code, expectedCode);
63+
await assertFlutterSnippetResult(code, expectedCode, 'MyWidget');
6464
}
6565

6666
Future<void> test_notValid_notFlutterProject() async {

pkg/analysis_server/test/services/snippets/dart/if_else_statement_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ void f() {
3232
''';
3333
var expectedCode = r'''
3434
void f() {
35-
if (condition) {
35+
if ([!condition!]) {
3636
^
3737
} else {
3838
/**/
@@ -53,7 +53,7 @@ void f() {
5353
var expectedCode = r'''
5454
void f() {
5555
if (true) {
56-
if (condition) {
56+
if ([!condition!]) {
5757
^
5858
} else {
5959
/**/

pkg/analysis_server/test/services/snippets/dart/test_support.dart

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -54,31 +54,26 @@ abstract class DartSnippetProducerTest extends AbstractSingleUnitTest {
5454
expect(codeResult, expectedCode.code);
5555

5656
// Check selection/position.
57-
expect(snippet.change.selection!.file, testFile.path);
58-
if (expectedCode.positions.length == 1) {
59-
expect(snippet.change.selection!.offset, expectedCode.position.offset);
60-
}
61-
62-
// And linked edits if the test is verifying them.
63-
if (expectedCode.ranges.isNotEmpty) {
64-
var expectedLinkedGroups =
65-
expectedCode.ranges
66-
.map(
67-
(range) => {
68-
'positions': [
69-
{'file': testFile.path, 'offset': range.sourceRange.offset},
70-
],
71-
'length': range.sourceRange.length,
72-
'suggestions': [],
73-
},
74-
)
75-
.toSet();
76-
var actualLinkedGroups =
77-
snippet.change.linkedEditGroups
78-
.map((group) => group.toJson())
79-
.toSet();
80-
expect(actualLinkedGroups, equals(expectedLinkedGroups));
81-
}
57+
var selection = snippet.change.selection!;
58+
expect(selection.file, testFile.path);
59+
expect(selection.offset, expectedCode.position.offset);
60+
61+
// Verify all linked edits/placeholders.
62+
var expectedLinkedGroups =
63+
expectedCode.ranges
64+
.map(
65+
(range) => {
66+
'positions': [
67+
{'file': testFile.path, 'offset': range.sourceRange.offset},
68+
],
69+
'length': range.sourceRange.length,
70+
'suggestions': [],
71+
},
72+
)
73+
.toSet();
74+
var actualLinkedGroups =
75+
snippet.change.linkedEditGroups.map((group) => group.toJson()).toSet();
76+
expect(actualLinkedGroups, equals(expectedLinkedGroups));
8277

8378
return snippet;
8479
}
@@ -110,7 +105,7 @@ abstract class DartSnippetProducerTest extends AbstractSingleUnitTest {
110105

111106
abstract class FlutterSnippetProducerTest extends DartSnippetProducerTest {
112107
/// A version of [assertSnippetResult] that expects all positions in
113-
/// [expectedCode] to match a single linked edit group for the text
108+
/// [expected] to match a single linked edit group for the text
114109
/// [linkedGroupText] and the selection to be at the marked range.
115110
Future<void> assertFlutterSnippetResult(
116111
String content,

0 commit comments

Comments
 (0)