From 0d10d2bf9313f5831c7005480a417d8dbb36914b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 14:39:24 +0000 Subject: [PATCH] fix(e2e): wait for shell-ready before reaction assertions after reload Bootstrap can still be in flight after domcontentloaded on reload; match #94/#87 by waiting on data-ready and the composer before asserting persisted message reactions. Co-authored-by: cynarAI --- apps/web/e2e/message-hover-actions.spec.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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("👍");