// @vitest-environment happy-dom import { cleanup, render, screen } from "@testing-library/react"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { Session } from "../../types.js"; import { PaneContainer } from "./PaneContainer.js"; vi.mock("../terminal/TerminalPane.js", () => ({ TerminalPane: ({ sessionId, focus }: { sessionId: string; focus?: boolean }) => (
), })); vi.mock("../structured/StructuredPane.js", () => ({ StructuredPane: ({ sessionId, focus }: { sessionId: string; focus?: boolean }) => (
), })); afterEach(cleanup); function session(over: Partial = {}): Session { return { id: "s1", cwd: "/home/n", command: "claude", env: {}, metadata: {}, status: "Running", created_at: "2026-01-01T00:00:00Z", ...over, } as Session; } describe("PaneContainer", () => { it("renders TerminalPane when the session has no view (defaults to Terminal)", () => { render(); expect(screen.getByTestId("terminal-pane")).toBeTruthy(); expect(screen.queryByTestId("structured-pane")).toBeNull(); }); it("renders TerminalPane when the session isn't known yet", () => { render(); expect(screen.getByTestId("terminal-pane")).toBeTruthy(); }); it("renders StructuredPane for a Structured session", () => { render(); const pane = screen.getByTestId("structured-pane"); expect(pane.dataset.sessionId).toBe("s1"); expect(pane.dataset.focus).toBe("false"); expect(screen.queryByTestId("terminal-pane")).toBeNull(); }); });