Skip to content

Commit 112c639

Browse files
committed
Update article tests
1 parent 17d4533 commit 112c639

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

e2e/articles.spec.ts

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,25 @@ test.describe("Unauthenticated Articles Page", () => {
2525
await expect(
2626
page.getByRole("heading", { name: "Written by E2E Test User One" }),
2727
).toBeVisible();
28-
await expect(page.getByLabel("like-trigger")).toBeVisible();
28+
// Wait for sidebar data to load (ArticleMenu renders after API response)
29+
await expect(page.getByLabel("like-trigger")).toBeVisible({
30+
timeout: 15000,
31+
});
2932
await expect(page.getByLabel("bookmark-trigger")).toBeVisible();
3033
});
3134

3235
test("Should show bookmark article icon", async ({ page }) => {
3336
await page.goto("http://localhost:3000/articles");
37+
// Wait for articles to fully hydrate
38+
await page.waitForSelector("article");
3439

3540
await expect(
3641
page.getByRole("heading", { name: "Recent bookmarks" }),
3742
).toBeHidden();
3843

3944
await expect(
4045
page.locator("article").first().getByLabel("Bookmark this post"),
41-
).toBeVisible();
46+
).toBeVisible({ timeout: 15000 });
4247
});
4348
test("Should load more articles when scrolling to the end of the page", async ({
4449
page,
@@ -179,7 +184,7 @@ test.describe("Authenticated Articles Page", () => {
179184

180185
await expect(
181186
page.locator("article").first().getByLabel("Bookmark this post"),
182-
).toBeVisible();
187+
).toBeVisible({ timeout: 15000 });
183188
});
184189

185190
test("Should load more articles when scrolling to the end of the page", async ({
@@ -266,10 +271,14 @@ test.describe("Authenticated Articles Page", () => {
266271
await expect(
267272
page.getByRole("heading", { name: "Written by E2E Test User One" }),
268273
).toBeVisible();
274+
// Wait for comments to finish loading
269275
await expect(
270-
page.getByRole("heading", { name: "Discussion (0)" }),
271-
).toBeVisible();
272-
await expect(page.getByLabel("like-trigger")).toBeVisible();
276+
page.getByRole("heading", { name: /^Discussion \(\d+\)$/ }),
277+
).toBeVisible({ timeout: 15000 });
278+
// Wait for sidebar data to load (ArticleMenu renders after API response)
279+
await expect(page.getByLabel("like-trigger")).toBeVisible({
280+
timeout: 15000,
281+
});
273282
await expect(page.getByLabel("bookmark-trigger")).toBeVisible();
274283
});
275284

@@ -301,11 +310,14 @@ test.describe("Authenticated Articles Page", () => {
301310
await expect(
302311
page.getByRole("heading", { name: "Written by E2E Test User One" }),
303312
).toBeVisible();
304-
// There's 1 comment created by the test setup
313+
// Wait for comments to finish loading (shows "Discussion (X)" when loaded)
305314
await expect(
306-
page.getByRole("heading", { name: "Discussion (1)" }),
307-
).toBeVisible();
308-
await expect(page.getByLabel("like-trigger")).toBeVisible();
315+
page.getByRole("heading", { name: /^Discussion \(\d+\)$/ }),
316+
).toBeVisible({ timeout: 15000 });
317+
// Wait for sidebar data to load (ArticleMenu renders after API response)
318+
await expect(page.getByLabel("like-trigger")).toBeVisible({
319+
timeout: 15000,
320+
});
309321
await expect(page.getByLabel("bookmark-trigger")).toBeVisible();
310322

311323
await page.getByRole("button", { name: "Reply" }).first().click();

0 commit comments

Comments
 (0)