



























@@ -4,6 +4,7 @@ import { defaultRuntime } from "../runtime.js";
4455const agentCommandFromIngressMock = vi.fn();
66let registeredListener: ((evt: unknown) => void) | undefined;
7+const embeddedEventTimestamp = Date.parse("2026-05-09T07:26:00.000Z");
7889vi.mock("../agents/agent-command.js", () => ({
910agentCommandFromIngress: (...args: unknown[]) => agentCommandFromIngressMock(...args),
@@ -135,6 +136,8 @@ describe("EmbeddedTuiBackend", () => {
135136const originalRuntimeError = defaultRuntime.error;
136137137138beforeEach(() => {
139+vi.useFakeTimers();
140+vi.setSystemTime(embeddedEventTimestamp);
138141agentCommandFromIngressMock.mockReset();
139142registeredListener = undefined;
140143setEmbeddedMode(false);
@@ -143,6 +146,7 @@ describe("EmbeddedTuiBackend", () => {
143146});
144147145148afterEach(() => {
149+vi.useRealTimers();
146150setEmbeddedMode(false);
147151defaultRuntime.log = originalRuntimeLog;
148152defaultRuntime.error = originalRuntimeError;
@@ -206,7 +210,7 @@ describe("EmbeddedTuiBackend", () => {
206210message: {
207211role: "assistant",
208212content: [{ type: "text", text: "hello" }],
209-timestamp: expect.any(Number),
213+timestamp: embeddedEventTimestamp,
210214},
211215},
212216},
@@ -228,7 +232,7 @@ describe("EmbeddedTuiBackend", () => {
228232message: {
229233role: "assistant",
230234content: [{ type: "text", text: "hello" }],
231-timestamp: expect.any(Number),
235+timestamp: embeddedEventTimestamp,
232236},
233237},
234238},
@@ -274,22 +278,29 @@ describe("EmbeddedTuiBackend", () => {
274278.filter((entry) => entry.event === "chat")
275279.map(
276280(entry) =>
277-entry.payload as { state?: string; message?: { content?: Array<{ text?: string }> } },
281+entry.payload as {
282+runId?: string;
283+sessionKey?: string;
284+state?: string;
285+stopReason?: string;
286+message?: { content?: Array<{ text?: string }> };
287+},
278288);
279289const nonEmptyDeltas = chatPayloads.filter(
280290(payload) => payload.state === "delta" && payload.message?.content?.[0]?.text,
281291);
282292expect(nonEmptyDeltas).toHaveLength(0);
283-expect(chatPayloads.at(-1)).toEqual(
284-expect.objectContaining({
285-state: "final",
286-message: {
287-role: "assistant",
288-content: [{ type: "text", text: "No" }],
289-timestamp: expect.any(Number),
290-},
291-}),
292-);
293+expect(chatPayloads.at(-1)).toStrictEqual({
294+runId: "run-local-no",
295+sessionKey: "agent:main:main",
296+state: "final",
297+stopReason: "stop",
298+message: {
299+role: "assistant",
300+content: [{ type: "text", text: "No" }],
301+timestamp: embeddedEventTimestamp,
302+},
303+});
293304});
294305295306it("emits side-result events for local /btw runs", async () => {
@@ -407,7 +418,7 @@ describe("EmbeddedTuiBackend", () => {
407418message: {
408419role: "assistant",
409420content: [{ type: "text", text: "" }],
410-timestamp: expect.any(Number),
421+timestamp: embeddedEventTimestamp,
411422},
412423},
413424},
@@ -428,7 +439,7 @@ describe("EmbeddedTuiBackend", () => {
428439message: {
429440role: "assistant",
430441content: [{ type: "text", text: "done" }],
431-timestamp: expect.any(Number),
442+timestamp: embeddedEventTimestamp,
432443},
433444},
434445},
@@ -484,11 +495,10 @@ describe("EmbeddedTuiBackend", () => {
484495await flushMicrotasks();
485496486497expect(agentCommandFromIngressMock).toHaveBeenCalledTimes(1);
487-expect(agentCommandFromIngressMock.mock.calls[0]?.[0]).toEqual(
488-expect.objectContaining({
489-timeout: "300",
490-}),
491-);
498+const ingressOptions = agentCommandFromIngressMock.mock.calls[0]?.[0] as
499+| { timeout?: unknown }
500+| undefined;
501+expect(ingressOptions?.timeout).toBe("300");
492502} finally {
493503backend.stop();
494504}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。