Skip to content

Commit abbe917

Browse files
authored
test: fix flow state clean test on windows (#13013)
1 parent 1217ced commit abbe917

1 file changed

Lines changed: 30 additions & 14 deletions

File tree

src/frontend/tests/core/features/user-flow-state-cleanup.spec.ts

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,19 @@ test(
4444
await page.evaluate(() => {
4545
sessionStorage.removeItem("testMockAutoLogin");
4646
});
47-
await page.getByRole("button", { name: "Sign In" }).click();
48-
49-
// Create User A — wait for the homepage Loading state to clear before
50-
// checking mainpage_title (mainpage_title only renders after data load,
51-
// which can outlast a 30s wait on slower runners like Windows CI).
52-
await page.waitForSelector('text="Loading"', {
53-
state: "hidden",
54-
timeout: 60000,
55-
});
47+
await Promise.all([
48+
page.waitForResponse(
49+
(response) =>
50+
response.url().includes("/api/v1/login") && response.status() === 200,
51+
{ timeout: 60000 },
52+
),
53+
page.getByRole("button", { name: "Sign In" }).click(),
54+
]);
55+
56+
// mainpage_title only renders after the homepage data finishes loading,
57+
// and on slower runners (Windows CI) this can outlast a 60s wait.
5658
await page.waitForSelector('[data-testid="mainpage_title"]', {
57-
timeout: 60000,
59+
timeout: 90000,
5860
});
5961
await page.getByTestId("user-profile-settings").click();
6062
await page.getByText("Admin Page", { exact: true }).click();
@@ -88,10 +90,17 @@ test(
8890
await page.evaluate(() => {
8991
sessionStorage.removeItem("testMockAutoLogin");
9092
});
91-
await page.getByRole("button", { name: "Sign In" }).click();
93+
await Promise.all([
94+
page.waitForResponse(
95+
(response) =>
96+
response.url().includes("/api/v1/login") && response.status() === 200,
97+
{ timeout: 60000 },
98+
),
99+
page.getByRole("button", { name: "Sign In" }).click(),
100+
]);
92101

93102
// Create a flow for User A
94-
await page.waitForSelector('[id="new-project-btn"]', { timeout: 30000 });
103+
await page.waitForSelector('[id="new-project-btn"]', { timeout: 60000 });
95104
// Check that User A starts with an empty flows list
96105
expect(
97106
(
@@ -129,7 +138,7 @@ test(
129138
await basicPromptingHeading.click();
130139
try {
131140
await page.waitForSelector('[data-testid="canvas_controls_dropdown"]', {
132-
timeout: attempt === maxClickAttempts ? 180000 : 45000,
141+
timeout: attempt === maxClickAttempts ? 240000 : 60000,
133142
});
134143
canvasMounted = true;
135144
break;
@@ -172,7 +181,14 @@ test(
172181
await page.evaluate(() => {
173182
sessionStorage.removeItem("testMockAutoLogin");
174183
});
175-
await page.getByRole("button", { name: "Sign In" }).click();
184+
await Promise.all([
185+
page.waitForResponse(
186+
(response) =>
187+
response.url().includes("/api/v1/login") && response.status() === 200,
188+
{ timeout: 60000 },
189+
),
190+
page.getByRole("button", { name: "Sign In" }).click(),
191+
]);
176192

177193
// Verify admin can't see User A's flow
178194
await expect(page.getByText(userAFlowName, { exact: true })).toBeVisible({

0 commit comments

Comments
 (0)