import { expect, test } from "@playwright/test"; import { waitForAnimations } from "../helpers/animations"; import { installMockBridge } from "../helpers/bridge"; test.beforeEach(async ({ page }) => { await installMockBridge(page); }); async function gotoApp(page: import("@playwright/test").Page) { await page.goto("/", { waitUntil: "domcontentloaded" }); await waitForInvokeBridge(page); await expect(page.getByTestId("open-agents-view")).toBeVisible({ timeout: 10_000, }); } async function waitForInvokeBridge(page: import("@playwright/test").Page) { await page.waitForFunction( () => { const w = window as Window & { __BUZZ_E2E_INVOKE_MOCK_COMMAND__?: unknown; __TAURI_INTERNALS__?: { invoke?: unknown }; }; return ( typeof w.__BUZZ_E2E_INVOKE_MOCK_COMMAND__ === "function" || typeof w.__TAURI_INTERNALS__?.invoke === "function" ); }, null, { timeout: 5_000 }, ); } async function invokeTauri( page: import("@playwright/test").Page, command: string, payload?: Record, ): Promise { await waitForInvokeBridge(page); return page.evaluate( async ({ command: c, payload: p }) => { const w = window as Window & { __BUZZ_E2E_INVOKE_MOCK_COMMAND__?: ( c: string, p?: Record, ) => Promise; __TAURI_INTERNALS__?: { invoke?: (c: string, p?: Record) => Promise; }; }; const invoke = w.__BUZZ_E2E_INVOKE_MOCK_COMMAND__ ?? w.__TAURI_INTERNALS__?.invoke; if (!invoke) throw new Error("Mock invoke bridge is unavailable."); return (await invoke(c, p)) as T; }, { command, payload }, ); } async function openModelCombobox( page: import("@playwright/test").Page, model: import("@playwright/test").Locator, ) { // PersonaModelCombobox renders a role="combobox" trigger + a Radix Popover // with a search and plain