1 write to TestServices
Microsoft.VisualStudioCode.Razor.IntegrationTests (1)
Services\VSCodeIntegrationTestBase.cs (1)
53
TestServices
= new IntegrationTestServices(_output, settings);
162 references to TestServices
Microsoft.VisualStudioCode.Razor.IntegrationTests (162)
CodeActionsTests.cs (11)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
22
await
TestServices
.Editor.GoToLineAsync(15);
23
await
TestServices
.Input.TypeAsync("StringBuilder sb;");
24
await
TestServices
.Editor.SaveAsync();
27
await
TestServices
.Diagnostics.WaitForDiagnosticsAsync(expectErrors: true, timeout: TimeSpan.FromSeconds(10));
30
await
TestServices
.Editor.GoToWordAsync("StringBuilder");
33
var hasCodeActions = await
TestServices
.CodeAction.OpenQuickFixMenuAsync();
37
await
TestServices
.Input.PressAsync(SpecialKey.Enter);
40
await
TestServices
.Editor.WaitForEditorDirtyAsync();
43
var text = await
TestServices
.Editor.WaitForEditorTextChangeAsync();
47
await
TestServices
.Diagnostics.WaitForDiagnosticsAsync(expectErrors: false, timeout: TimeSpan.FromSeconds(10));
CompletionTests.cs (24)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
23
await
TestServices
.Editor.GoToLineAsync(17);
24
await
TestServices
.Input.PressAsync(SpecialKey.End); // Go to end of line
25
await
TestServices
.Input.PressAsync(SpecialKey.Enter); // New line
28
await
TestServices
.Input.TypeAsync("current");
31
var hasCompletions = await
TestServices
.Completion.WaitForListAsync();
35
hasCompletions = await
TestServices
.Completion.TriggerAsync();
41
var items = await
TestServices
.Completion.GetItemsAsync();
51
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
54
await
TestServices
.Editor.GoToLineAsync(5);
55
await
TestServices
.Input.PressAsync(SpecialKey.End);
56
await
TestServices
.Input.PressAsync(SpecialKey.Enter);
59
await
TestServices
.Input.TypeAsync("<di");
62
var hasCompletions = await
TestServices
.Completion.WaitForListAsync();
66
await
TestServices
.Completion.TriggerAsync();
70
var items = await
TestServices
.Completion.GetItemsAsync();
82
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
85
await
TestServices
.Editor.GoToLineAsync(2);
86
await
TestServices
.Input.PressAsync(SpecialKey.End);
87
await
TestServices
.Input.PressAsync(SpecialKey.Enter);
90
await
TestServices
.Input.TypeAsync("@in"); // Partial "@inject"
93
var hasCompletions = await
TestServices
.Completion.WaitForListAsync();
97
await
TestServices
.Completion.TriggerAsync();
101
var items = await
TestServices
.Completion.GetItemsAsync();
DiagnosticsTests.cs (33)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Home.razor");
20
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
23
await
TestServices
.Editor.SelectAllAsync();
24
await
TestServices
.Input.TypeAsync("@{ int x = 5 }"); // Missing semicolon
27
await
TestServices
.Diagnostics.WaitForProblemAsync("CS1002", timeout: TimeSpan.FromSeconds(5));
34
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Home.razor");
35
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
38
await
TestServices
.Editor.SelectAllAsync();
39
await
TestServices
.Input.TypeAsync("@{ int x = }"); // Missing value - CS1525
42
await
TestServices
.Diagnostics.WaitForDiagnosticsAsync(expectErrors: true, timeout: TimeSpan.FromSeconds(5));
45
await
TestServices
.Input.PressAsync(SpecialKey.Backspace);
46
await
TestServices
.Input.TypeAsync("5; }");
49
await
TestServices
.Diagnostics.WaitForDiagnosticsAsync(expectErrors: false, timeout: TimeSpan.FromSeconds(5));
56
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
57
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
60
await
TestServices
.Diagnostics.WaitForDiagnosticsAsync(expectErrors: false, timeout: TimeSpan.FromSeconds(10));
63
var hasErrors = await
TestServices
.Diagnostics.HasErrorsAsync();
72
var fileName = Path.Combine(
TestServices
.Workspace.WorkspacePath, "Components/Pages/Home.razor");
77
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Home.razor");
79
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
81
await
TestServices
.Diagnostics.WaitForProblemAsync("RZ1034", timeout: TimeSpan.FromSeconds(5));
83
var problems = await
TestServices
.Diagnostics.GetProblemsAsync();
92
var fileName = Path.Combine(
TestServices
.Workspace.WorkspacePath, "Components/Pages/Home.razor");
97
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Home.razor");
99
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
101
await
TestServices
.Diagnostics.WaitForProblemAsync("RZ9980", timeout: TimeSpan.FromSeconds(5));
103
var problems = await
TestServices
.Diagnostics.GetProblemsAsync();
110
var fileName = Path.Combine(
TestServices
.Workspace.WorkspacePath, "UnusedDirective.cshtml");
117
await
TestServices
.Editor.OpenFileAsync("UnusedDirective.cshtml");
119
await
TestServices
.Diagnostics.WaitForUnnecessaryCodeAsync(timeout: TimeSpan.FromSeconds(10));
121
var hasWarnings = await
TestServices
.Diagnostics.HasWarningsAsync();
124
await
TestServices
.Diagnostics.OpenProblemsPanelAsync();
125
var problems = await
TestServices
.Diagnostics.GetProblemsAsync();
FindReferencesTests.cs (8)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
23
await
TestServices
.Editor.GoToLineAsync(13, column: 17);
26
await
TestServices
.Navigation.FindAllReferencesAsync();
33
var referencesCount = await
TestServices
.Navigation.GetReferencesCountAsync();
41
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
45
await
TestServices
.Editor.GoToLineAsync(15, column: 18);
48
await
TestServices
.Navigation.FindAllReferencesAsync();
53
var referencesCount = await
TestServices
.Navigation.GetReferencesCountAsync();
FormattingTests.cs (18)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
22
await
TestServices
.Editor.GoToLineAsync(14);
23
await
TestServices
.Input.PressAsync(SpecialKey.End);
24
await
TestServices
.Input.PressAsync(SpecialKey.Enter);
25
await
TestServices
.Input.TypeAsync("private string BadlyIndented=\"test\";");
28
await
TestServices
.Editor.SaveAsync();
31
await
TestServices
.Formatting.FormatDocumentAsync();
34
var afterFormat = await
TestServices
.Editor.WaitForEditorTextChangeAsync();
43
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
46
await
TestServices
.Editor.GoToLineAsync(5);
47
await
TestServices
.Input.PressAsync(SpecialKey.End);
48
await
TestServices
.Input.PressAsync(SpecialKey.Enter);
50
await
TestServices
.Input.TypeAsync("<div>");
52
await
TestServices
.Input.TypeAsync("@");
55
await
TestServices
.Input.PressAsync(SpecialKey.Escape);
56
await
TestServices
.Input.TypeAsync("{var x=1;}");
59
await
TestServices
.Formatting.FormatDocumentAsync();
62
var afterFormat = await
TestServices
.Editor.WaitForEditorTextChangeAsync();
GoToDefinitionTests.cs (17)
19
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
23
await
TestServices
.Editor.GoToWordAsync("IncrementCount");
26
var beforePosition = await
TestServices
.Editor.GetCursorPositionAsync();
31
await
TestServices
.Navigation.GoToDefinitionAsync();
34
var afterPosition = await
TestServices
.Editor.GetCursorPositionAsync();
43
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
46
await
TestServices
.Editor.GoToLineAsync(17, column: 9);
48
var beforePosition = await
TestServices
.Editor.GetCursorPositionAsync();
53
await
TestServices
.Navigation.GoToDefinitionAsync();
56
var afterPosition = await
TestServices
.Editor.GetCursorPositionAsync();
65
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Home.razor");
68
await
TestServices
.Input.PressWithPrimaryModifierAsync(SpecialKey.End);
69
await
TestServices
.Input.TypeAsync("\n<Counter />");
70
await
TestServices
.Editor.SaveAsync();
73
await
TestServices
.Editor.GoToWordAsync("Counter");
76
await
TestServices
.Navigation.GoToDefinitionAsync("Counter.razor");
79
var currentFile = await
TestServices
.Editor.GetCurrentFileNameAsync();
HoverTests.cs (9)
20
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
25
await
TestServices
.Editor.GoToLineAsync(13, 17);
28
var hoverContent = await
TestServices
.Hover.WaitForContentAsync();
41
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
46
await
TestServices
.Editor.GoToLineAsync(15, 18);
49
var hoverContent = await
TestServices
.Hover.WaitForContentAsync();
62
await
TestServices
.Editor.OpenFileAsync("Components/Pages/Counter.razor");
67
await
TestServices
.Editor.GoToLineAsync(13, 13);
70
var hoverContent = await
TestServices
.Hover.WaitForContentAsync();
Services\VSCodeIntegrationTestBase.cs (42)
42
TestServices
.Logger.Log($"Test '{testName}' failed: {ex.Message}");
43
await
TestServices
.Playwright.TakeScreenshotAsync($"FAILED_{testName}");
44
TestServices
.VSCode.CollectLogsOnFailure(testName);
56
TestServices
.Logger.Log($"Environment: DISPLAY={Environment.GetEnvironmentVariable("DISPLAY") ?? "(not set)"}");
57
TestServices
.Logger.Log($"OS: {Environment.OSVersion}");
58
TestServices
.Logger.Log($"Initialization timeout: {settings.InitializationTimeout}");
61
TestServices
.VSCode.ClearLogs();
71
TestServices
.Logger.Log($"{currentStep}...");
72
await
TestServices
.VSCode.EnsureInstalledAsync().WaitAsync(cts.Token);
73
TestServices
.Logger.Log($"{currentStep} - Complete");
77
TestServices
.Logger.Log($"{currentStep}...");
78
await
TestServices
.Workspace.CreateAsync().WaitAsync(cts.Token);
79
TestServices
.Logger.Log($"{currentStep} - Complete");
83
TestServices
.Logger.Log($"{currentStep}...");
84
await
TestServices
.Playwright.InitializeAsync().WaitAsync(cts.Token);
85
TestServices
.Logger.Log($"{currentStep} - Complete");
89
TestServices
.Logger.Log($"{currentStep}...");
90
await
TestServices
.VSCode.LaunchAsync(
TestServices
.Workspace.WorkspacePath).WaitAsync(cts.Token);
91
TestServices
.Logger.Log($"{currentStep} - Complete");
95
TestServices
.Logger.Log($"{currentStep}...");
96
await
TestServices
.Playwright.ConnectAsync(
97
TestServices
.Settings.RemoteDebuggingPort,
98
TestServices
.Workspace.Name).WaitAsync(cts.Token);
99
TestServices
.Logger.Log($"{currentStep} - Complete");
103
TestServices
.Logger.Log($"{currentStep}...");
104
await
TestServices
.VSCode.WaitForReadyAsync().WaitAsync(cts.Token);
105
TestServices
.Logger.Log($"{currentStep} - Complete");
109
TestServices
.Logger.Log($"{currentStep}...");
110
await
TestServices
.VSCode.WaitForLspReadyAsync().WaitAsync(cts.Token);
111
await
TestServices
.Razor.WaitForReadyAsync().WaitAsync(cts.Token);
112
TestServices
.Logger.Log($"{currentStep} - Complete");
114
TestServices
.Logger.Log("Test initialization completed successfully");
119
TestServices
.Logger.Log($"FATAL: {message}");
121
await
TestServices
.Playwright.TakeScreenshotAsync($"INIT_TIMEOUT_{stepName}");
122
TestServices
.VSCode.CollectLogsOnFailure($"INIT_TIMEOUT_{stepName}");
127
TestServices
.Logger.Log($"FATAL: Test initialization failed during {currentStep}: {ex.Message}");
129
await
TestServices
.Playwright.TakeScreenshotAsync($"INIT_FAILED_{stepName}");
130
TestServices
.VSCode.CollectLogsOnFailure($"INIT_FAILED_{stepName}");
137
await
TestServices
.Playwright.DisposeAsync();
138
TestServices
.VSCode.Stop();
139
TestServices
.Workspace.Cleanup();