test(frontend): cover terminal toolbar session label
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
b46e14df19
commit
90c41764f1
|
|
@ -0,0 +1,38 @@
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it, vi } from "vitest";
|
||||||
|
import type { WorkspaceSession } from "../types/workspace";
|
||||||
|
import { CenterPane } from "./CenterPane";
|
||||||
|
|
||||||
|
// The terminal body pulls in xterm/SSE machinery irrelevant to the toolbar under test.
|
||||||
|
vi.mock("./TerminalPane", () => ({ TerminalPane: () => <div>terminal body</div> }));
|
||||||
|
|
||||||
|
const worker = {
|
||||||
|
id: "sess-1",
|
||||||
|
workspaceId: "proj-1",
|
||||||
|
workspaceName: "my-app",
|
||||||
|
title: "do the thing",
|
||||||
|
provider: "claude-code",
|
||||||
|
kind: "worker",
|
||||||
|
branch: "ao/sess-1",
|
||||||
|
status: "working",
|
||||||
|
updatedAt: "2026-06-10T00:00:00Z",
|
||||||
|
prs: [],
|
||||||
|
} satisfies WorkspaceSession;
|
||||||
|
|
||||||
|
describe("CenterPane toolbar session label", () => {
|
||||||
|
it("shows the session display name for a worker", () => {
|
||||||
|
render(<CenterPane session={worker} theme="dark" daemonReady />);
|
||||||
|
expect(screen.getByText("do the thing")).toBeInTheDocument();
|
||||||
|
expect(screen.queryByText("sess-1")).not.toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows 'Orchestrator' for an orchestrator session", () => {
|
||||||
|
render(<CenterPane session={{ ...worker, id: "sess-orch", kind: "orchestrator" }} theme="dark" daemonReady />);
|
||||||
|
expect(screen.getByText("Orchestrator")).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows 'No session' when there is no session", () => {
|
||||||
|
render(<CenterPane theme="dark" daemonReady />);
|
||||||
|
expect(screen.getByText("No session")).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue