diff --git a/ui/src/pages/chat/components/chat-swarm-progress.browser.test.ts b/ui/src/pages/chat/components/chat-swarm-progress.browser.test.ts new file mode 100644 index 000000000000..3d3c86d0ff80 --- /dev/null +++ b/ui/src/pages/chat/components/chat-swarm-progress.browser.test.ts @@ -0,0 +1,62 @@ +import { chromium, type Browser } from "playwright"; +import { afterAll, beforeAll, describe, expect, it } from "vitest"; +import { readStyleSheet } from "../../../../../test/helpers/ui-style-fixtures.js"; +import { + canRunPlaywrightChromium, + resolvePlaywrightChromiumExecutablePath, +} from "../../../test-helpers/control-ui-e2e.ts"; + +const chromiumExecutablePath = resolvePlaywrightChromiumExecutablePath(chromium.executablePath()); +const describeBrowserLayout = canRunPlaywrightChromium(chromiumExecutablePath) + ? describe + : describe.skip; + +let browser: Browser | null = null; + +describeBrowserLayout("chat swarm progress browser layout", () => { + beforeAll(async () => { + browser = await chromium.launch({ executablePath: chromiumExecutablePath, headless: true }); + }); + + afterAll(async () => { + await browser?.close(); + }); + + it("keeps long task popovers reachable inside the viewport", async () => { + if (!browser) { + throw new Error("expected browser"); + } + const page = await browser.newPage({ viewport: { width: 375, height: 568 } }); + const tasks = Array.from( + { length: 256 }, + (_, index) => `