diff --git a/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs b/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs index 91d99296db0b..d3608901433e 100644 --- a/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs +++ b/src/BuiltInTools/HotReloadClient/Web/AbstractBrowserRefreshServer.cs @@ -299,14 +299,7 @@ public ValueTask RefreshBrowserAsync(CancellationToken cancellationToken) public ValueTask ReportCompilationErrorsInBrowserAsync(ImmutableArray compilationErrors, CancellationToken cancellationToken) { logger.Log(LogEvents.UpdatingDiagnostics); - if (compilationErrors.IsEmpty) - { - return SendJsonMessageAsync(new AspNetCoreHotReloadApplied(), cancellationToken); - } - else - { - return SendJsonMessageAsync(new HotReloadDiagnostics { Diagnostics = compilationErrors }, cancellationToken); - } + return SendJsonMessageAsync(new HotReloadDiagnostics { Diagnostics = compilationErrors }, cancellationToken); } public async ValueTask UpdateStaticAssetsAsync(IEnumerable relativeUrls, CancellationToken cancellationToken) diff --git a/test/dotnet-watch.Tests/Browser/BrowserTests.cs b/test/dotnet-watch.Tests/Browser/BrowserTests.cs index 8fa4c00de4ef..d1c302337036 100644 --- a/test/dotnet-watch.Tests/Browser/BrowserTests.cs +++ b/test/dotnet-watch.Tests/Browser/BrowserTests.cs @@ -79,8 +79,13 @@ await App.WaitUntilOutputContains(""" 🧪 Received: Reload """); + // no other browser message sent: + Assert.Equal(2, App.Process.Output.Count(line => line.Contains("🧪"))); + await App.WaitForOutputLineContaining(MessageDescriptor.WaitingForChanges); + App.Process.ClearOutput(); + // another rude edit: UpdateSourceFile(homePagePath, src => src.Replace("public virtual int F() => 1;", "/* member placeholder */")); @@ -98,13 +103,25 @@ await App.WaitUntilOutputContains(""" 🧪 Received: Reload """); + // no other browser message sent: + Assert.Equal(2, App.Process.Output.Count(line => line.Contains("🧪"))); + + App.Process.ClearOutput(); + // valid edit: UpdateSourceFile(homePagePath, src => src.Replace("/* member placeholder */", "public int F() => 1;")); await App.WaitForOutputLineContaining(MessageDescriptor.HotReloadSucceeded); + await App.WaitUntilOutputContains($$""" + 🧪 Received: {"type":"HotReloadDiagnosticsv1","diagnostics":[]} + """); + await App.WaitUntilOutputContains($$""" 🧪 Received: {"type":"AspNetCoreHotReloadApplied"} """); + + // no other browser message sent: + Assert.Equal(2, App.Process.Output.Count(line => line.Contains("🧪"))); } }