diff --git a/e2e/documents-chat.spec.ts b/e2e/documents-chat.spec.ts index 75987d1a6..ce76987aa 100644 --- a/e2e/documents-chat.spec.ts +++ b/e2e/documents-chat.spec.ts @@ -123,25 +123,29 @@ test.describe("document vault — chat about a document", () => { ); await page.goto(`/documents?doc=${CONTENT_DOC_ID}`); - const sheet = page.getByRole("dialog"); + const sheet = page.locator('[data-slot="responsive-sheet-content"]'); await expect(sheet).toBeVisible(); + // The neutral Coach icon lives in the detail-sheet header; tapping it + // opens the doc-scoped chat drawer (a sibling overlay). const open = sheet.locator('[data-slot="document-chat-open"]'); await expect(open).toBeVisible(); await open.click(); + const drawer = page.locator('[data-slot="document-chat-drawer"]'); + await expect(drawer).toBeVisible(); await expect( - sheet.locator('[data-slot="document-chat-log"]'), + drawer.locator('[data-slot="document-chat-log"]'), ).toBeVisible(); await expect( - sheet.locator('[data-slot="document-chat-empty"]'), + drawer.locator('[data-slot="document-chat-empty"]'), ).toBeVisible(); await expect( - sheet.locator('[data-slot="document-chat-input"]'), + drawer.locator('[data-slot="document-chat-input"]'), ).toBeVisible(); // The always-on safety note is present. await expect( - sheet.locator('[data-slot="document-chat-safety"]'), + drawer.locator('[data-slot="document-chat-safety"]'), ).toContainText("not medical advice"); }); @@ -238,16 +242,18 @@ test.describe("document vault — chat about a document", () => { ); await page.goto(`/documents?doc=${CONTENT_DOC_ID}`); - const sheet = page.getByRole("dialog"); + const sheet = page.locator('[data-slot="responsive-sheet-content"]'); await expect(sheet).toBeVisible(); await sheet.locator('[data-slot="document-chat-open"]').click(); - const input = sheet.locator('[data-slot="document-chat-input"]'); + const drawer = page.locator('[data-slot="document-chat-drawer"]'); + await expect(drawer).toBeVisible(); + const input = drawer.locator('[data-slot="document-chat-input"]'); await input.fill(QUESTION); - await sheet.locator('[data-slot="document-chat-send"]').click(); + await drawer.locator('[data-slot="document-chat-send"]').click(); // The user's question and the streamed/settled reply both land in the log. - const log = sheet.locator('[data-slot="document-chat-log"]'); + const log = drawer.locator('[data-slot="document-chat-log"]'); await expect(log.getByText(QUESTION)).toBeVisible(); await expect(log.getByText(/findings are unremarkable/)).toBeVisible(); // The reply settled to a single assistant bubble (no duplicate). @@ -354,15 +360,17 @@ test.describe("document vault — chat about a document", () => { ); await page.goto(`/documents?doc=${CONTENT_DOC_ID}`); - const sheet = page.getByRole("dialog"); + const sheet = page.locator('[data-slot="responsive-sheet-content"]'); await expect(sheet).toBeVisible(); await sheet.locator('[data-slot="document-chat-open"]').click(); - const input = sheet.locator('[data-slot="document-chat-input"]'); + const drawer = page.locator('[data-slot="document-chat-drawer"]'); + await expect(drawer).toBeVisible(); + const input = drawer.locator('[data-slot="document-chat-input"]'); await input.fill(QUESTION); - await sheet.locator('[data-slot="document-chat-send"]').click(); + await drawer.locator('[data-slot="document-chat-send"]').click(); - const log = sheet.locator('[data-slot="document-chat-log"]'); + const log = drawer.locator('[data-slot="document-chat-log"]'); // The describe-only answer lands; the panel renders the model's