31 lines
1.5 KiB
TypeScript
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();
|
|
});
|