diff --git a/apps/web/e2e/composer-paste.spec.ts b/apps/web/e2e/composer-paste.spec.ts index 6574fdf..aa607b0 100644 --- a/apps/web/e2e/composer-paste.spec.ts +++ b/apps/web/e2e/composer-paste.spec.ts @@ -6,7 +6,7 @@ async function openComposer(page: Page) { await signup(page, `composer-paste-${stamp}@rakazo.test`, "password12", "Paste Test"); await completeOnboarding(page); await page.goto("/app", { waitUntil: "domcontentloaded" }); - await page.waitForURL(/\/app\/[^/]+$/); + await page.waitForURL(/\/app\/[^/]+$/, { timeout: 60_000 }); await waitForChatComposer(page); return page.getByRole("combobox", { name: /Message/ }); } diff --git a/apps/web/e2e/message-hover-actions.spec.ts b/apps/web/e2e/message-hover-actions.spec.ts index 47b5caf..6fd480e 100644 --- a/apps/web/e2e/message-hover-actions.spec.ts +++ b/apps/web/e2e/message-hover-actions.spec.ts @@ -1,5 +1,5 @@ import { expect, type Locator, type Page, type Route, test } from "@playwright/test"; -import { captureScreenshot, completeOnboarding, signup } from "./helpers"; +import { captureScreenshot, completeOnboarding, signup, waitForChatComposer } from "./helpers"; /** Submit from the Send control so an in-flight prior send cannot swallow Enter. */ async function sendComposerMessage(page: Page, composer: Locator, text: string) { @@ -254,6 +254,8 @@ test("message hover shows beside-bubble actions; reply links to parent", async ( await expect(parentRow.getByTestId("message-reactions")).toContainText("❤️ 2"); await captureScreenshot(page, testInfo, "message-multiple-reactions"); await page.reload({ waitUntil: "domcontentloaded" }); + await waitForChatComposer(page); + await expect(parentRow).toBeVisible({ timeout: 20_000 }); await expect(parentRow.getByTestId("message-reactions")).toContainText("❤️ 2"); await expect(parentRow.getByTestId("message-reactions")).toContainText("👍"); diff --git a/apps/web/e2e/messaging-transport.spec.ts b/apps/web/e2e/messaging-transport.spec.ts index 48273a4..b070384 100644 --- a/apps/web/e2e/messaging-transport.spec.ts +++ b/apps/web/e2e/messaging-transport.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { captureScreenshot, completeOnboarding, signup } from "./helpers"; +import { captureScreenshot, completeOnboarding, signup, waitForChatComposer } from "./helpers"; type ThreadPayload = { json?: { @@ -68,7 +68,7 @@ test("labels a Sendblue group message with its actual transport", async ({ page await page.route("**/rpc/threads/get", fulfillWithInjection); await page.reload({ waitUntil: "domcontentloaded" }); - await expect(page.getByRole("combobox", { name: /^Message/ })).toBeVisible({ timeout: 20_000 }); + await waitForChatComposer(page); const transportMessage = page.getByText("SMS · Alice: Dinner is at seven."); await expect(transportMessage).toBeVisible({ timeout: 20_000 }); await captureScreenshot(page, testInfo, "sendblue-sms-transport");