



















@@ -17,6 +17,15 @@ vi.mock("../markdown.ts", () => ({
1717toSanitizedMarkdownHtml: (value: string) => value,
1818}));
191920+vi.mock("../icons.ts", () => ({
21+icons: new Proxy(
22+{},
23+{
24+get: () => "",
25+},
26+),
27+}));
28+2029vi.mock("../views/agents-utils.ts", () => ({
2130agentLogoUrl: () => "/openclaw-logo.svg",
2231isRenderableControlUiAvatarUrl: (value: string) =>
@@ -40,6 +49,15 @@ vi.mock("../views/agents-utils.ts", () => ({
4049},
4150}));
425152+vi.mock("../tool-display.ts", () => ({
53+formatToolDetail: () => undefined,
54+resolveToolDisplay: ({ name }: { name: string }) => ({
55+ name,
56+label: name,
57+icon: "zap",
58+}),
59+}));
60+4361vi.mock("./speech.ts", () => ({
4462isTtsSpeaking: () => false,
4563isTtsSupported: () => false,
@@ -729,11 +747,14 @@ describe("grouped chat rendering", () => {
729747},
730748);
731749732-await vi.waitFor(() => {
733-const image = container.querySelector<HTMLImageElement>(".chat-message-image");
734-expect(image?.getAttribute("src")).toBe(objectUrl);
735-expect(image?.getAttribute("alt")).toBe("Generated image 1");
736-});
750+await vi.waitFor(
751+() => {
752+const image = container.querySelector<HTMLImageElement>(".chat-message-image");
753+expect(image?.getAttribute("src")).toBe(objectUrl);
754+expect(image?.getAttribute("alt")).toBe("Generated image 1");
755+},
756+{ interval: 1, timeout: 100 },
757+);
737758expect(fetchMock).toHaveBeenCalledWith(
738759"/api/chat/media/outgoing/agent%3Amain%3Amain/00000000-0000-4000-8000-000000000000/full",
739760expect.objectContaining({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。