import { expect, type Page } from "@playwright/test"; import { getServerId } from "./server-id"; export async function selectWorkspaceInSidebar(page: Page, workspaceId: string): Promise { const row = page.getByTestId(`sidebar-workspace-row-${getServerId()}:${workspaceId}`); await expect(row).toBeVisible({ timeout: 30_000 }); await row.click(); } export async function expectWorkspaceListed(page: Page, name: string): Promise { await expect( page.locator('[data-testid^="sidebar-workspace-row-"]').filter({ hasText: name }).first(), ).toBeVisible({ timeout: 30_000 }); } export async function openMobileAgentSidebar(page: Page): Promise { await page.getByRole("button", { name: "Open menu" }).click(); } export async function closeMobileAgentSidebar(page: Page): Promise { const closeButton = page.getByTestId("sidebar-close"); await expect(closeButton).toBeInViewport({ timeout: 5_000 }); await closeButton.click({ force: true }); } // The mobile sidebar panel animates via translateX; toBeInViewport reflects the rendered position. export async function expectMobileAgentSidebarVisible(page: Page): Promise { await expect(page.getByTestId("sidebar-sessions")).toBeInViewport({ timeout: 5_000 }); } export async function expectMobileAgentSidebarHidden(page: Page): Promise { await expect(page.getByTestId("sidebar-sessions")).not.toBeInViewport({ timeout: 5_000 }); }