Просмотр исходного кода

[release/8.0] Use wait assert in flaky tests (#63565)

* Make the flaky test wait for the conditon to be true.

* Improve `NavigationManagerUriGetsUpdatedOnEnhancedNavigation_BothServerAndWebAssembly`

* Add quarantine to the failing test.
Ilona Tomkowicz 6 месяцев назад
Родитель
Сommit
3969687575

+ 12 - 4
src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs

@@ -526,13 +526,21 @@ public class EnhancedNavigationTest : ServerTestBase<BasicTestAppServerSiteFixtu
 
         Browser.Exists(By.TagName("nav")).FindElement(By.LinkText("LocationChanged/LocationChanging event (server-and-wasm)")).Click();
         Browser.Equal("Page with location changed components", () => Browser.Exists(By.TagName("h1")).Text);
-        Assert.EndsWith("/nav/location-changed/server-and-wasm", Browser.Exists(By.Id("nav-uri-server")).Text);
-        Assert.EndsWith("/nav/location-changed/server-and-wasm", Browser.Exists(By.Id("nav-uri-wasm")).Text);
+        Browser.True(() => Browser.Exists(By.Id("nav-uri-server")).Text.EndsWith(
+            "/nav/location-changed/server-and-wasm",
+            StringComparison.Ordinal));
+        Browser.True(() => Browser.Exists(By.Id("nav-uri-wasm")).Text.EndsWith(
+            "/nav/location-changed/server-and-wasm",
+            StringComparison.Ordinal));
 
         Browser.Exists(By.Id($"update-query-string-{runtimeThatInvokedNavigation}")).Click();
 
-        Assert.EndsWith($"/nav/location-changed/server-and-wasm?query=1", Browser.Exists(By.Id($"nav-uri-server")).Text);
-        Assert.EndsWith($"/nav/location-changed/server-and-wasm?query=1", Browser.Exists(By.Id($"nav-uri-wasm")).Text);
+        Browser.True(() => Browser.Exists(By.Id("nav-uri-server")).Text.EndsWith(
+            "/nav/location-changed/server-and-wasm?query=1",
+            StringComparison.Ordinal));
+        Browser.True(() => Browser.Exists(By.Id("nav-uri-wasm")).Text.EndsWith(
+            "/nav/location-changed/server-and-wasm?query=1",
+            StringComparison.Ordinal));
     }
 
     [Theory]

+ 6 - 6
src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/FormWithParentBindingContextTest.cs

@@ -1344,19 +1344,19 @@ public class FormWithParentBindingContextTest : ServerTestBase<BasicTestAppServe
     {
         GoTo("forms/form-with-checkbox-and-radio-button");
 
-        Assert.False(Browser.Exists(By.Id("checkbox")).Selected);
-        Assert.False(Browser.Exists(By.Id("radio-button")).Selected);
+        WaitAssert.False(Browser, () => Browser.Exists(By.Id("checkbox")).Selected);
+        WaitAssert.False(Browser, () => Browser.Exists(By.Id("radio-button")).Selected);
 
         Browser.Exists(By.Id("checkbox")).Click();
         Browser.Exists(By.Id("radio-button")).Click();
 
-        Assert.True(Browser.Exists(By.Id("checkbox")).Selected);
-        Assert.True(Browser.Exists(By.Id("radio-button")).Selected);
+        WaitAssert.True(Browser, () => Browser.Exists(By.Id("checkbox")).Selected);
+        WaitAssert.True(Browser, () => Browser.Exists(By.Id("radio-button")).Selected);
 
         Browser.Exists(By.Id("submit-button")).Click();
 
-        Assert.False(Browser.Exists(By.Id("checkbox")).Selected);
-        Assert.False(Browser.Exists(By.Id("radio-button")).Selected);
+        WaitAssert.False(Browser, () => Browser.Exists(By.Id("checkbox")).Selected);
+        WaitAssert.False(Browser, () => Browser.Exists(By.Id("radio-button")).Selected);
     }
 
     [Fact]

+ 1 - 0
src/SignalR/server/StackExchangeRedis/test/RedisEndToEnd.cs

@@ -184,6 +184,7 @@ public class RedisEndToEndTests : VerifiableLoggedTest
     [ConditionalTheory]
     [SkipIfDockerNotPresent]
     [MemberData(nameof(TransportTypesAndProtocolTypes))]
+    [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/63582")]
     public async Task CanSendAndReceiveUserMessagesUserNameWithPatternIsTreatedAsLiteral(HttpTransportType transportType, string protocolName)
     {
         using (StartVerifiableLog())