Skip to content

Commit 7b233d1

Browse files
committed
Add override completion test for VS Code
1 parent 6237a30 commit 7b233d1

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/Completion/Delegation/DelegatedCompletionItemResolverTest.NetFx.cs

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ void ValidateResolveParams(DelegatedCompletionItemResolveParams @params)
176176
public async Task ResolveAsync_CSharp_Resolves()
177177
{
178178
// Arrange & Act
179-
var resolvedItem = await ResolveCompletionItemAsync("@$$", itemToResolve: "typeof", DisposalToken);
179+
var resolvedItem = await ResolveCompletionItemAsync("@$$", itemToResolve: "typeof", supportsVisualStudioExtensions: true, DisposalToken);
180180

181181
// Assert
182182
Assert.NotNull(resolvedItem.Description);
@@ -208,7 +208,7 @@ async Task FooAsync()
208208
""");
209209

210210
// Act
211-
var resolvedItem = await ResolveCompletionItemAsync(input, itemToResolve: "await", DisposalToken);
211+
var resolvedItem = await ResolveCompletionItemAsync(input, itemToResolve: "await", supportsVisualStudioExtensions: true, DisposalToken);
212212

213213
// Assert
214214
var textChange = originalSourceText.GetTextChange(resolvedItem.TextEdit.Value.First);
@@ -278,6 +278,37 @@ Task FooAsync()
278278
AssertEx.EqualOrDiff(expectedSourceText.ToString(), actualSourceText.ToString());
279279
}
280280

281+
[Fact]
282+
public async Task ResolveAsync_CSharp_OverrideCompletion()
283+
{
284+
// Arrange
285+
var input =
286+
"""
287+
@code {
288+
override $$
289+
}
290+
""";
291+
TestFileMarkupParser.GetPosition(input, out var documentContent, out _);
292+
var originalSourceText = SourceText.From(documentContent);
293+
var expectedSourceText = SourceText.From(
294+
"""
295+
@using System.Threading.Tasks
296+
@code {
297+
protected override Task OnInitializedAsync()
298+
{
299+
return base.OnInitializedAsync();
300+
}
301+
}
302+
""");
303+
304+
// Act
305+
var resolvedItem = await ResolveCompletionItemAsync(input, itemToResolve: "OnInitializedAsync()", supportsVisualStudioExtensions: false, DisposalToken);
306+
307+
var textChange = originalSourceText.GetTextChange((TextEdit)resolvedItem.Command.Arguments[1]);
308+
var actualSourceText = originalSourceText.WithChanges(textChange);
309+
AssertEx.EqualOrDiff(expectedSourceText.ToString(), actualSourceText.ToString());
310+
}
311+
281312
[Fact]
282313
public async Task ResolveAsync_Html_Resolves()
283314
{
@@ -306,11 +337,11 @@ void ValidateResolveParams(DelegatedCompletionItemResolveParams @params)
306337
}
307338
}
308339

309-
private async Task<VSInternalCompletionItem> ResolveCompletionItemAsync(string content, string itemToResolve, CancellationToken cancellationToken)
340+
private async Task<VSInternalCompletionItem> ResolveCompletionItemAsync(string content, string itemToResolve, bool supportsVisualStudioExtensions, CancellationToken cancellationToken)
310341
{
311342
TestFileMarkupParser.GetPosition(content, out var documentContent, out var cursorPosition);
312343
var codeDocument = CreateCodeDocument(documentContent, filePath: "C:/path/to/file.razor");
313-
await using var csharpServer = await CreateCSharpServerAsync(codeDocument, supportsVisualStudioExtensions: true);
344+
await using var csharpServer = await CreateCSharpServerAsync(codeDocument, supportsVisualStudioExtensions);
314345

315346
var clientConnection = CreateClientConnectionForResolve(csharpServer);
316347
var documentContextFactory = new TestDocumentContextFactory("C:/path/to/file.razor", codeDocument);

0 commit comments

Comments
 (0)