20 lines
1.3 KiB
TypeScript
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 };
|
|
}
|