Skip to content

Commit 8596955

Browse files
DanTupCommit Bot
authored and
Commit Bot
committed
[analysis_server] Fix+refactor code actions tests
Change-Id: I2835f5b01de915edf24fa05d28109f7613bd212f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249583 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent eb6aa22 commit 8596955

5 files changed

+76
-32
lines changed

pkg/analysis_server/test/lsp/code_actions_abstract.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ abstract class AbstractCodeActionsTest extends AbstractLspAnalysisServerTest {
1313
Uri uri,
1414
String command,
1515
String title, {
16+
Range? range,
17+
Position? position,
1618
bool asCodeActionLiteral = false,
1719
bool asCommand = false,
1820
}) async {
19-
final codeActions = await getCodeActions(uri.toString());
21+
final codeActions =
22+
await getCodeActions(uri.toString(), range: range, position: position);
2023
final codeAction = findCommand(codeActions, command)!;
2124

2225
codeAction.map(

pkg/analysis_server/test/lsp/code_actions_fixes_test.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,10 @@ ProcessInfo b;
463463
emptyTextDocumentClientCapabilities, [CodeActionKind.QuickFix]),
464464
);
465465

466-
final codeActions = await getCodeActions(otherFileUri.toString());
466+
final codeActions = await getCodeActions(
467+
otherFileUri.toString(),
468+
position: startOfDocPos,
469+
);
467470
expect(codeActions, isEmpty);
468471
}
469472

pkg/analysis_server/test/lsp/code_actions_refactor_test.dart

+6-4
Original file line numberDiff line numberDiff line change
@@ -354,10 +354,11 @@ import 'dart:convert';
354354
^
355355
void f() {}
356356
''';
357-
newFile(mainFilePath, content);
357+
newFile(mainFilePath, withoutMarkers(content));
358358
await initialize();
359359

360-
final codeActions = await getCodeActions(mainFileUri.toString());
360+
final codeActions = await getCodeActions(mainFileUri.toString(),
361+
position: positionFromMarker(content));
361362
final codeAction =
362363
findCommand(codeActions, Commands.performRefactor, extractMethodTitle);
363364
expect(codeAction, isNull);
@@ -743,10 +744,11 @@ import 'dart:convert';
743744
^
744745
void f() {}
745746
''';
746-
newFile(mainFilePath, content);
747+
newFile(mainFilePath, withoutMarkers(content));
747748
await initialize();
748749

749-
final codeActions = await getCodeActions(mainFileUri.toString());
750+
final codeActions = await getCodeActions(mainFileUri.toString(),
751+
position: positionFromMarker(content));
750752
final codeAction =
751753
findCommand(codeActions, Commands.performRefactor, extractWidgetTitle);
752754
expect(codeAction, isNull);

pkg/analysis_server/test/lsp/code_actions_source_test.dart

+61-25
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,44 @@ void main() {
1919
});
2020
}
2121

22+
abstract class AbstractSourceCodeActionsTest extends AbstractCodeActionsTest {
23+
/// Wrapper around [checkCodeActionAvailable] for Source actions where
24+
/// position/range is irrelevant (so uses [startOfDocPos]).
25+
Future<void> checkSourceCodeActionAvailable(
26+
Uri uri,
27+
String command,
28+
String title, {
29+
bool asCodeActionLiteral = false,
30+
bool asCommand = false,
31+
}) async {
32+
return checkCodeActionAvailable(
33+
uri,
34+
command,
35+
title,
36+
position: startOfDocPos,
37+
asCodeActionLiteral: asCodeActionLiteral,
38+
asCommand: asCommand,
39+
);
40+
}
41+
42+
/// Wrapper around [getCodeActions] for Source actions where position/range is
43+
/// irrelevant (so uses [startOfDocPos]).
44+
Future<List<Either2<Command, CodeAction>>> getSourceCodeActions(
45+
String fileUri, {
46+
List<CodeActionKind>? kinds,
47+
CodeActionTriggerKind? triggerKind,
48+
}) {
49+
return getCodeActions(
50+
fileUri,
51+
position: startOfDocPos,
52+
kinds: kinds,
53+
triggerKind: triggerKind,
54+
);
55+
}
56+
}
57+
2258
@reflectiveTest
23-
class FixAllSourceCodeActionsTest extends AbstractCodeActionsTest {
59+
class FixAllSourceCodeActionsTest extends AbstractSourceCodeActionsTest {
2460
Future<void> test_appliesCorrectEdits() async {
2561
const analysisOptionsContent = '''
2662
linter:
@@ -45,15 +81,16 @@ linter:
4581
workspaceCapabilities:
4682
withApplyEditSupport(emptyWorkspaceClientCapabilities));
4783

48-
final codeActions = await getCodeActions(mainFileUri.toString());
84+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
4985
final codeAction = findCommand(codeActions, Commands.fixAll)!;
5086

5187
await verifyCodeActionEdits(codeAction, content, expectedContent);
5288
}
5389
}
5490

5591
@reflectiveTest
56-
class OrganizeImportsSourceCodeActionsTest extends AbstractCodeActionsTest {
92+
class OrganizeImportsSourceCodeActionsTest
93+
extends AbstractSourceCodeActionsTest {
5794
Future<void> test_appliesCorrectEdits_withDocumentChangesSupport() async {
5895
const content = '''
5996
import 'dart:math';
@@ -75,7 +112,7 @@ int minified(int x, int y) => min(x, y);
75112
workspaceCapabilities: withApplyEditSupport(
76113
withDocumentChangesSupport(emptyWorkspaceClientCapabilities)));
77114

78-
final codeActions = await getCodeActions(mainFileUri.toString());
115+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
79116
final codeAction = findCommand(codeActions, Commands.organizeImports)!;
80117

81118
await verifyCodeActionEdits(codeAction, content, expectedContent,
@@ -103,7 +140,7 @@ int minified(int x, int y) => min(x, y);
103140
workspaceCapabilities:
104141
withApplyEditSupport(emptyWorkspaceClientCapabilities));
105142

106-
final codeActions = await getCodeActions(mainFileUri.toString());
143+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
107144
final codeAction = findCommand(codeActions, Commands.organizeImports)!;
108145

109146
await verifyCodeActionEdits(codeAction, content, expectedContent);
@@ -117,7 +154,7 @@ int minified(int x, int y) => min(x, y);
117154
workspaceCapabilities:
118155
withApplyEditSupport(emptyWorkspaceClientCapabilities));
119156

120-
await checkCodeActionAvailable(
157+
await checkSourceCodeActionAvailable(
121158
mainFileUri,
122159
Commands.organizeImports,
123160
'Organize Imports',
@@ -131,7 +168,7 @@ int minified(int x, int y) => min(x, y);
131168
workspaceCapabilities:
132169
withApplyEditSupport(emptyWorkspaceClientCapabilities));
133170

134-
await checkCodeActionAvailable(
171+
await checkSourceCodeActionAvailable(
135172
mainFileUri,
136173
Commands.organizeImports,
137174
'Organize Imports',
@@ -146,7 +183,7 @@ int minified(int x, int y) => min(x, y);
146183
workspaceCapabilities:
147184
withApplyEditSupport(emptyWorkspaceClientCapabilities));
148185

149-
final codeActions = await getCodeActions(
186+
final codeActions = await getSourceCodeActions(
150187
mainFileUri.toString(),
151188
triggerKind: CodeActionTriggerKind.Automatic,
152189
);
@@ -169,7 +206,7 @@ int minified(int x, int y) => min(x, y);
169206
workspaceCapabilities:
170207
withApplyEditSupport(emptyWorkspaceClientCapabilities));
171208

172-
final codeActions = await getCodeActions(mainFileUri.toString());
209+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
173210
final codeAction = findCommand(codeActions, Commands.organizeImports)!;
174211

175212
final command = codeAction.map(
@@ -189,7 +226,7 @@ int minified(int x, int y) => min(x, y);
189226
workspaceCapabilities:
190227
withApplyEditSupport(emptyWorkspaceClientCapabilities));
191228

192-
ofKind(CodeActionKind kind) => getCodeActions(
229+
ofKind(CodeActionKind kind) => getSourceCodeActions(
193230
mainFileUri.toString(),
194231
kinds: [kind],
195232
);
@@ -215,7 +252,7 @@ int minified(int x, int y) => min(x, y);
215252
workspaceCapabilities:
216253
withApplyEditSupport(emptyWorkspaceClientCapabilities));
217254

218-
final codeActions = await getCodeActions(mainFileUri.toString());
255+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
219256
final codeAction = findCommand(codeActions, Commands.organizeImports)!;
220257

221258
final command = codeAction.map(
@@ -238,7 +275,7 @@ int minified(int x, int y) => min(x, y);
238275
workspaceCapabilities:
239276
withApplyEditSupport(emptyWorkspaceClientCapabilities));
240277

241-
final codeActions = await getCodeActions(mainFileUri.toString());
278+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
242279
final codeAction = findCommand(codeActions, Commands.organizeImports);
243280
expect(codeAction, isNull);
244281
}
@@ -247,14 +284,14 @@ int minified(int x, int y) => min(x, y);
247284
newFile(mainFilePath, '');
248285
await initialize();
249286

250-
final codeActions = await getCodeActions(mainFileUri.toString());
287+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
251288
final codeAction = findCommand(codeActions, Commands.organizeImports);
252289
expect(codeAction, isNull);
253290
}
254291
}
255292

256293
@reflectiveTest
257-
class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
294+
class SortMembersSourceCodeActionsTest extends AbstractSourceCodeActionsTest {
258295
Future<void> test_appliesCorrectEdits_withDocumentChangesSupport() async {
259296
const content = '''
260297
String b;
@@ -269,7 +306,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
269306
workspaceCapabilities: withApplyEditSupport(
270307
withDocumentChangesSupport(emptyWorkspaceClientCapabilities)));
271308

272-
final codeActions = await getCodeActions(mainFileUri.toString());
309+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
273310
final codeAction = findCommand(codeActions, Commands.sortMembers)!;
274311

275312
await verifyCodeActionEdits(codeAction, content, expectedContent,
@@ -290,7 +327,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
290327
workspaceCapabilities:
291328
withApplyEditSupport(emptyWorkspaceClientCapabilities));
292329

293-
final codeActions = await getCodeActions(mainFileUri.toString());
330+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
294331
final codeAction = findCommand(codeActions, Commands.sortMembers)!;
295332

296333
await verifyCodeActionEdits(codeAction, content, expectedContent);
@@ -304,7 +341,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
304341
workspaceCapabilities:
305342
withApplyEditSupport(emptyWorkspaceClientCapabilities));
306343

307-
await checkCodeActionAvailable(
344+
await checkSourceCodeActionAvailable(
308345
mainFileUri,
309346
Commands.sortMembers,
310347
'Sort Members',
@@ -318,7 +355,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
318355
workspaceCapabilities:
319356
withApplyEditSupport(emptyWorkspaceClientCapabilities));
320357

321-
await checkCodeActionAvailable(
358+
await checkSourceCodeActionAvailable(
322359
mainFileUri,
323360
Commands.sortMembers,
324361
'Sort Members',
@@ -336,7 +373,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
336373
workspaceCapabilities:
337374
withApplyEditSupport(emptyWorkspaceClientCapabilities));
338375

339-
final codeActions = await getCodeActions(mainFileUri.toString());
376+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
340377
final codeAction = findCommand(codeActions, Commands.sortMembers)!;
341378

342379
final command = codeAction.map(
@@ -369,7 +406,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
369406
workspaceCapabilities:
370407
withApplyEditSupport(emptyWorkspaceClientCapabilities));
371408

372-
final codeActions = await getCodeActions(
409+
final codeActions = await getSourceCodeActions(
373410
mainFileUri.toString(),
374411
triggerKind: CodeActionTriggerKind.Automatic,
375412
);
@@ -392,7 +429,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
392429
workspaceCapabilities:
393430
withApplyEditSupport(emptyWorkspaceClientCapabilities));
394431

395-
final codeActions = await getCodeActions(mainFileUri.toString());
432+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
396433
final codeAction = findCommand(codeActions, Commands.sortMembers)!;
397434

398435
final command = codeAction.map(
@@ -414,8 +451,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
414451
workspaceCapabilities:
415452
withApplyEditSupport(emptyWorkspaceClientCapabilities));
416453

417-
final codeActions =
418-
await getCodeActions(pubspecFileUri.toString(), range: startOfDocRange);
454+
final codeActions = await getSourceCodeActions(pubspecFileUri.toString());
419455
expect(codeActions, isEmpty);
420456
}
421457

@@ -427,7 +463,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
427463
workspaceCapabilities:
428464
withApplyEditSupport(emptyWorkspaceClientCapabilities));
429465

430-
final codeActions = await getCodeActions(mainFileUri.toString());
466+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
431467
final codeAction = findCommand(codeActions, Commands.sortMembers);
432468
expect(codeAction, isNull);
433469
}
@@ -436,7 +472,7 @@ class SortMembersSourceCodeActionsTest extends AbstractCodeActionsTest {
436472
newFile(mainFilePath, '');
437473
await initialize();
438474

439-
final codeActions = await getCodeActions(mainFileUri.toString());
475+
final codeActions = await getSourceCodeActions(mainFileUri.toString());
440476
final codeAction = findCommand(codeActions, Commands.sortMembers);
441477
expect(codeAction, isNull);
442478
}

pkg/analysis_server/test/lsp/server_abstract.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1016,7 +1016,7 @@ mixin LspAnalysisServerTestMixin implements ClientCapabilitiesHelperMixin {
10161016
}) {
10171017
range ??= position != null
10181018
? Range(start: position, end: position)
1019-
: startOfDocRange;
1019+
: throw 'Supply either a Range or Position for CodeActions requests';
10201020
final request = makeRequest(
10211021
Method.textDocument_codeAction,
10221022
CodeActionParams(

0 commit comments

Comments
 (0)