agent-orchestrator/frontend/e2e/inspector-toggle.spec.ts

27 lines
1.3 KiB
TypeScript

import { expect, test } from "@playwright/test";
// Regression for the dead inspector toggle: rrp v4 derives panel sizes from
// the observed DOM layout, so the flex-grow transition animating an
// imperative expand()/collapse() fired onResize with transient sizes.
// SessionView mirrored every onResize into the ui-store, so a mid-collapse
// frame read as "dragged back open" and re-expanded the panel — the topbar
// button did nothing visible — and a mount-time 0-size event flipped fresh
// profiles to collapsed. Only real separator drags may write back; this needs
// the real rrp + CSS pipeline, which the mocked unit tests can't exercise.
test("topbar button collapses and reopens the inspector rail", async ({ page }) => {
await page.goto("/");
await page.getByRole("button", { name: "Open refactor-mux" }).click();
await expect(page).toHaveURL(/sessions\/refactor-mux/);
// Fresh profile: the rail must mount open, not get toggled shut by
// mount-time layout events.
const inspector = page.locator("#inspector");
await expect(inspector).toBeVisible();
await page.getByRole("button", { name: "Close inspector panel" }).click();
await expect(inspector).toBeHidden();
await page.getByRole("button", { name: "Open inspector panel" }).click();
await expect(inspector).toBeVisible();
});