import { expect, it } from "vitest"; import { chromium } from "@playwright/test"; import { sendChatMessage } from "./chat-flow.js"; it.skipIf(process.env.PAPERCLIP_CHAT_EVAL_MESSAGE_CANARY !== "1")("sends ordinary chat without dismissing a current form on desktop and mobile", async () => { const browser = await chromium.launch({ headless: true, ...(process.env.PAPERCLIP_RUNNER_E2E_CHROMIUM_EXECUTABLE ? { executablePath: process.env.PAPERCLIP_RUNNER_E2E_CHROMIUM_EXECUTABLE } : {}) }); try { for (const viewport of [{ width: 1280, height: 900 }, { width: 390, height: 844 }]) { const page = await browser.newPage({ viewport }); await page.setContent(`

Launch page details

`); const message = "Walk me through the existing form before building anything."; await sendChatMessage(page, message, () => 5000); expect(await page.evaluate(() => (window as unknown as { formState: unknown }).formState)).toEqual({ status: "pending", dismissedAt: null, messages: [message] }); expect(await page.getByTestId("task-chat-composer-takeover").isVisible()).toBe(true); await page.close(); } } finally { await browser.close(); } });