Files
pikasTech-HWLAB/web/hwlab-cloud-web/scripts/workbench-trace-lifecycle.test.ts
T

20 lines
1.3 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import type { ChatMessage } from "../src/types/index.ts";
import { traceLifecycleExpanded } from "../src/components/workbench/trace-lifecycle.ts";
test("Trace lifecycle expands only active agent turns", () => {
assert.equal(traceLifecycleExpanded(agentMessage({ status: "running", runnerTrace: { status: "running" } })), true);
assert.equal(traceLifecycleExpanded(agentMessage({ status: "running", runnerTrace: { status: "pending" } })), true);
assert.equal(traceLifecycleExpanded(agentMessage({ status: "completed", runnerTrace: { status: "running" } })), false);
assert.equal(traceLifecycleExpanded(agentMessage({ status: "running", runnerTrace: { status: "completed" } })), false);
assert.equal(traceLifecycleExpanded(agentMessage({ status: "running", runnerTrace: { status: "running", finalResponse: "ok" } })), false);
assert.equal(traceLifecycleExpanded(agentMessage({ status: "failed", runnerTrace: { status: "failed" } })), false);
assert.equal(traceLifecycleExpanded({ ...agentMessage({ status: "running" }), role: "user", title: "用户" }), false);
});
function agentMessage(patch: Partial<ChatMessage>): ChatMessage {
return { id: "msg_trace_lifecycle", role: "agent", title: "Code Agent", text: "", status: "running", createdAt: "2026-06-15T00:00:00.000Z", ...patch };
}