Fix 8 failing Playwright e2e tests after SQLite removal

- Delete workspace-hover-card.spec.ts (tests expected unimplemented script UI)
- Fix archive-tab helper to handle idle agents archived without modal
- Add waitForWorkspaceInSidebar helper for hydration timing
- Fix launcher-tab draft counting race with expect.poll waits
- Increase terminal-perf navigation timeouts for CI
- Spawn workspace scripts after worktree setup completes
This commit is contained in:
Mohamed Boudra
2026-04-14 09:37:45 +07:00
parent 369b46ea08
commit 19585709d5
8 changed files with 88 additions and 221 deletions
+7 -3
View File
@@ -139,21 +139,25 @@ export async function navigateToTerminal(
// The workspace layout consumes `?open=...`, returns null during the effect,
// then replaces the URL with the clean workspace route after preparing the tab.
// On CI, Expo Router's rootNavigationState may take time to initialize,
// so we allow a generous timeout here.
const cleanWorkspaceRoute = buildWorkspaceUrl(input.cwd);
await page.waitForURL(
(url) => url.pathname === cleanWorkspaceRoute && !url.searchParams.has("open"),
{ timeout: 15_000 },
{ timeout: 30_000 },
);
// Wait for daemon connection (sidebar shows host label)
await page
.getByText("localhost", { exact: true })
.first()
.waitFor({ state: "visible", timeout: 15_000 });
.waitFor({ state: "visible", timeout: 30_000 });
// The open intent should have prepared and focused the exact pre-created terminal tab.
// The tab reconciliation effect also auto-creates terminal tabs once hydration completes,
// so we give it enough time for the full workspace hydration + tab creation cycle.
const terminalTab = page.locator(`[data-testid="workspace-tab-terminal_${input.terminalId}"]`);
await terminalTab.waitFor({ state: "visible", timeout: 15_000 });
await terminalTab.waitFor({ state: "visible", timeout: 30_000 });
await terminalTab.click();
const terminalSurface = page.locator('[data-testid="terminal-surface"]');