diff --git a/src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProvider.cs b/src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProviderTest.cs similarity index 97% rename from src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProvider.cs rename to src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProviderTest.cs index 324821cf43..05ccb17879 100644 --- a/src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProvider.cs +++ b/src/Components/Server/test/Circuits/RevalidatingServerAuthenticationStateProviderTest.cs @@ -185,17 +185,21 @@ namespace Microsoft.AspNetCore.Components } [Fact] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/19940")] public async Task IfValidateAuthenticationStateAsyncReturnsUnrelatedCancelledTask_TreatAsFailure() { // Arrange var validationTcs = new TaskCompletionSource(); + var incrementExecuted = new TaskCompletionSource(); var authenticationStateChangedCount = 0; using var provider = new TestRevalidatingServerAuthenticationStateProvider( TimeSpan.FromMilliseconds(50)); provider.NextValidationResult = validationTcs.Task; provider.SetAuthenticationState(CreateAuthenticationStateTask("test user")); - provider.AuthenticationStateChanged += _ => { authenticationStateChangedCount++; }; + provider.AuthenticationStateChanged += _ => + { + authenticationStateChangedCount++; + incrementExecuted.TrySetResult(true); + }; // Be waiting for the first ValidateAuthenticationStateAsync to complete await provider.NextValidateAuthenticationStateAsyncCall; @@ -208,6 +212,7 @@ namespace Microsoft.AspNetCore.Components // Assert: Since we didn't ask for that operation to be canceled, this is treated as // a failure to validate, so we force a logout + await incrementExecuted.Task.TimeoutAfter(TimeSpan.FromSeconds(5)); Assert.Equal(1, authenticationStateChangedCount); var newAuthState = await provider.GetAuthenticationStateAsync(); Assert.False(newAuthState.User.Identity.IsAuthenticated);