fix(chat): collapse long activity commands
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user