From d1ab55633235f932eb8182f9604aacbda64573c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Rozto=C4=8Dil?= Date: Thu, 11 Sep 2025 13:03:42 +0200 Subject: [PATCH 1/2] Un-quarantine CanUseAntiforgeryAfterInitialRender test, try to fix its flakiness --- .../FormHandlingTests/AntiforgeryTests.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs b/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs index c56278d24d1e..deb731b4023a 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs @@ -33,7 +33,6 @@ public override Task InitializeAsync() [Theory] [InlineData("server")] [InlineData("webassembly")] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/57766")] public void CanUseAntiforgeryAfterInitialRender(string target) { Navigate($"{ServerPathBase}/{target}-antiforgery-form"); @@ -47,7 +46,20 @@ public void CanUseAntiforgeryAfterInitialRender(string target) var submit = Browser.Exists(By.Id("submit")); submit.Click(); - var result = Browser.Exists(By.Id("result")); - Browser.Equal("Test", () => result.Text); + Browser.True(() => + { + try + { + var result = Browser.Exists(By.Id("result")); + return result.Text == "Test"; + } + catch (StaleElementReferenceException) + { + // Retry the test in case the element gets re-rendered between + // getting its reference and reading the text value. + // This caused rare flaky failures in the CI. + return false; + } + }); } } From d430b6b548c95fcc6f3627a5cac00ba12d3cff7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Rozto=C4=8Dil?= Date: Thu, 11 Sep 2025 16:56:51 +0200 Subject: [PATCH 2/2] Add interactive rendering check to test component, simplify test assertion --- .../FormHandlingTests/AntiforgeryTests.cs | 16 +--------------- .../Pages/Forms/ServerAntiforgeryForm.razor | 2 +- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs b/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs index deb731b4023a..ad1777e4f950 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/FormHandlingTests/AntiforgeryTests.cs @@ -46,20 +46,6 @@ public void CanUseAntiforgeryAfterInitialRender(string target) var submit = Browser.Exists(By.Id("submit")); submit.Click(); - Browser.True(() => - { - try - { - var result = Browser.Exists(By.Id("result")); - return result.Text == "Test"; - } - catch (StaleElementReferenceException) - { - // Retry the test in case the element gets re-rendered between - // getting its reference and reading the text value. - // This caused rare flaky failures in the CI. - return false; - } - }); + Browser.Equal("Test", () => Browser.FindElement(By.Id("result")).Text); } } diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ServerAntiforgeryForm.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ServerAntiforgeryForm.razor index a2c3eacc0e87..80a6df3d34da 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ServerAntiforgeryForm.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Forms/ServerAntiforgeryForm.razor @@ -6,7 +6,7 @@ { } -else +else if (RendererInfo.IsInteractive) {

@Name

}