Skip to content

Commit

Permalink
Fix Compilation page flaky UI test
Browse files Browse the repository at this point in the history
  • Loading branch information
exyi committed Feb 26, 2024
1 parent 6158f45 commit a473fd1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 34 deletions.
13 changes: 8 additions & 5 deletions src/Samples/Tests/Tests/Feature/CompilationPageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@ public void Feature_CompilationPage_SmokeTest()
{
RunInAllBrowsers(browser => {
browser.NavigateToUrl("/_dotvvm/diagnostics/compilation");
browser.Single("compile-all-button", By.Id).Click();
browser.WaitFor(() => { browser.Single("compile-all-button", By.Id).Click(); }, timeout: 15_000);
browser.Single("Routes", SelectByButtonText).Click();

// shows failed pages
Assert.InRange(browser.FindElements("tbody tr.success").Count, 10, int.MaxValue);
Assert.InRange(browser.FindElements("tbody tr.failure").Count, 10, int.MaxValue);
browser.WaitFor(() => {
AssertUI.HasClass(TableRow(browser, "FeatureSamples_CompilationPage_BindingsTestError"), "failure", waitForOptions: WaitForOptions.Disabled);
}, timeout: 10_000);
Assert.InRange(browser.FindElements("tbody tr.success").Count, 10, int.MaxValue);
Assert.InRange(browser.FindElements("tbody tr.failure").Count, 10, int.MaxValue);
var failedRow = () => TableRow(browser, "FeatureSamples_CompilationPage_BindingsTestError");
AssertUI.InnerTextEquals(failedRow().ElementAt("td", 1), "FeatureSamples/CompilationPage/BindingsTestError");
AssertUI.InnerTextEquals(failedRow().ElementAt("td", 3), "CompilationFailed");
AssertUI.HasClass(failedRow(), "failure", waitForOptions: WaitForOptions.Disabled);
}, timeout: 60_000);
AssertUI.HasNotClass(TableRow(browser, "FeatureSamples_CompilationPage_BindingsTest"), "failure");

// shows some errors and warnings
Expand Down
61 changes: 32 additions & 29 deletions src/Samples/Tests/Tests/Feature/PostbackConcurrencyTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -156,16 +156,17 @@ public void Feature_PostbackConcurrency_StressTest_Default()

browser.ElementAt("input[type=button]", 1).Click();

Thread.Sleep(10000);
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.True(0 < value && value <= 100);
Assert.Equal(100, before);
Assert.Equal(100, after);
Assert.Equal(0, rejected);
browser.WaitFor(() => {
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.InRange(value, 1, 100);
Assert.Equal(100, before);
Assert.Equal(100, after);
Assert.Equal(0, rejected);
}, timeout: 30_000);
});
}

Expand All @@ -178,15 +179,16 @@ public void Feature_PostbackConcurrency_StressTest_Deny()

browser.ElementAt("input[type=button]", 3).Click();

Thread.Sleep(10000);
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.True(0 < value && value <= 100);
Assert.Equal(100, before + rejected);
Assert.Equal(100, after);
browser.WaitFor(() => {
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.InRange(value, 1, 100);
Assert.Equal(100, before + rejected);
Assert.Equal(100, after);
}, timeout: 30_000);
});
}

Expand All @@ -199,16 +201,17 @@ public void Feature_PostbackConcurrency_StressTest_Queue()

browser.ElementAt("input[type=button]", 5).Click();

Thread.Sleep(10000);
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.Equal(100, value);
Assert.Equal(100, before);
Assert.Equal(100, after);
Assert.Equal(0, rejected);
browser.WaitFor(() => {
var before = int.Parse(browser.Single(".result-before").GetInnerText().Trim());
var rejected = int.Parse(browser.Single(".result-rejected").GetInnerText().Trim());
var after = int.Parse(browser.Single(".result-after").GetInnerText().Trim());
var value = int.Parse(browser.Single(".result-value").GetInnerText().Trim());

Assert.Equal(100, value);
Assert.Equal(100, before);
Assert.Equal(100, after);
Assert.Equal(0, rejected);
}, timeout: 30_000);
});
}

Expand Down

0 comments on commit a473fd1

Please sign in to comment.