// @vitest-environment node import { describe, expect, it } from "vitest"; import { renderToStaticMarkup } from "react-dom/server"; import type { TranscriptEntry } from "../../adapters"; import { ThemeProvider } from "../../context/ThemeContext"; import { RunTranscriptView, normalizeTranscript } from "./RunTranscriptView"; describe("RunTranscriptView", () => { it("keeps running command stdout inside the command fold instead of a standalone stdout block", () => { const entries: TranscriptEntry[] = [ { kind: "tool_call", ts: "2026-03-12T00:00:00.000Z", name: "command_execution", toolUseId: "cmd_1", input: { command: "ls -la" }, }, { kind: "stdout", ts: "2026-03-12T00:00:01.000Z", text: "file-a\nfile-b", }, ]; const blocks = normalizeTranscript(entries, false); expect(blocks).toHaveLength(1); expect(blocks[0]).toMatchObject({ type: "command_group", items: [{ result: "file-a\nfile-b", status: "running" }], }); }); it("renders assistant and thinking content as markdown in compact mode", () => { const html = renderToStaticMarkup( , ); expect(html).toContain("world"); expect(html).toContain("
  • first
  • "); expect(html).toContain("
  • second
  • "); }); it("hides saved-session resume skip stderr from nice mode normalization", () => { const entries: TranscriptEntry[] = [ { kind: "stderr", ts: "2026-03-12T00:00:00.000Z", text: "[paperclip] Skipping saved session resume for task \"PAP-485\" because wake reason is issue_assigned.", }, { kind: "assistant", ts: "2026-03-12T00:00:01.000Z", text: "Working on the task.", }, ]; const blocks = normalizeTranscript(entries, false); expect(blocks).toHaveLength(1); expect(blocks[0]).toMatchObject({ type: "message", role: "assistant", text: "Working on the task.", }); }); });