70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import "@testing-library/jest-dom";
|
|
import { fireEvent, render, screen } from "@testing-library/react";
|
|
|
|
import { AgentActivityTimeline } from "./AgentActivityTimeline";
|
|
|
|
describe("AgentActivityTimeline", () => {
|
|
it("shows only the first lines of a long tool command until expanded", () => {
|
|
const target = [
|
|
"cd /app/data/conversation-workspaces/conversation-example",
|
|
"python3 - <<'EOF'",
|
|
"import json, glob",
|
|
"print('fourth line')",
|
|
"EOF",
|
|
].join("\n");
|
|
render(
|
|
<AgentActivityTimeline
|
|
activities={[
|
|
{
|
|
id: "analysis",
|
|
title: "处理分析数据",
|
|
reason: "正在核查结果。",
|
|
status: "completed",
|
|
startedAt: 1000,
|
|
endedAt: 2000,
|
|
actions: [
|
|
{
|
|
id: "long-command",
|
|
tool: "bash",
|
|
title: "运行本地分析",
|
|
status: "completed",
|
|
target,
|
|
startedAt: 1100,
|
|
endedAt: 1900,
|
|
},
|
|
{
|
|
id: "short-command",
|
|
tool: "tjwater_cli",
|
|
title: "查询后端数据",
|
|
status: "completed",
|
|
target: "help data",
|
|
startedAt: 1900,
|
|
endedAt: 1950,
|
|
},
|
|
],
|
|
},
|
|
]}
|
|
/>,
|
|
);
|
|
|
|
fireEvent.click(screen.getByRole("button", { name: "展开分析过程" }));
|
|
expect(screen.getByText(/import json, glob/u)).toBeInTheDocument();
|
|
expect(screen.queryByText(/fourth line/u)).not.toBeInTheDocument();
|
|
expect(screen.getByText("help data")).toBeInTheDocument();
|
|
expect(screen.getByRole("button", { name: "展开完整内容" })).toHaveAttribute(
|
|
"aria-expanded",
|
|
"false",
|
|
);
|
|
|
|
fireEvent.click(screen.getByRole("button", { name: "展开完整内容" }));
|
|
expect(screen.getByText(/fourth line/u)).toBeInTheDocument();
|
|
expect(screen.getByRole("button", { name: "收起内容" })).toHaveAttribute(
|
|
"aria-expanded",
|
|
"true",
|
|
);
|
|
|
|
fireEvent.click(screen.getByRole("button", { name: "收起内容" }));
|
|
expect(screen.queryByText(/fourth line/u)).not.toBeInTheDocument();
|
|
});
|
|
});
|