agent-orchestrator/frontend/e2e/workbench.spec.ts

31 lines
1.5 KiB
TypeScript

import { expect, test } from "@playwright/test";
// The Playwright web server runs `dev:web` (VITE_NO_ELECTRON=1), so
// useWorkspaceQuery serves the deterministic preview fixtures from
// lib/mock-data.ts instead of hitting a daemon. The tests run in Chromium
// (no window.ao), so the terminal shows its browser-preview surface.
test("renders the orchestrator-first workbench shell", async ({ page }) => {
await page.goto("/");
// The single pinned Orchestrator anchor + the Projects group + a name-only worker row.
await expect(page.getByRole("button", { name: "Orchestrator", exact: true })).toBeVisible();
await expect(page.getByText("Projects")).toBeVisible();
await expect(page.getByRole("button", { name: "fix-webgl-fallback", exact: true })).toBeVisible();
// Orchestrator side rail = the quiet Workers list.
await expect(page.getByText("Workers", { exact: true })).toBeVisible();
});
test("deep-links into a worker session", async ({ page }) => {
await page.goto("/#/workspaces/api-gateway/sessions/refactor-mux");
// Worker view = emdash three-pane with the Git review rail.
await expect(page.getByText("Changed")).toBeVisible();
await expect(page.getByRole("button", { name: /Commit & Push/ })).toBeVisible();
});
test("drilling into a worker opens its Git review rail", async ({ page }) => {
await page.goto("/");
await page.getByRole("button", { name: "refactor-mux", exact: true }).click();
await expect(page.getByRole("button", { name: /Commit & Push/ })).toBeVisible();
await expect(page.getByText("internal/mux/terminal_mux.go")).toBeVisible();
});