Spaces:
Paused
Paused
| import { describe, expect, it } from "vitest"; | |
| import { | |
| buildControlUiAvatarUrl, | |
| normalizeControlUiBasePath, | |
| resolveAssistantAvatarUrl, | |
| } from "./control-ui-shared.js"; | |
| describe("resolveAssistantAvatarUrl", () => { | |
| it("normalizes base paths", () => { | |
| expect(normalizeControlUiBasePath()).toBe(""); | |
| expect(normalizeControlUiBasePath("")).toBe(""); | |
| expect(normalizeControlUiBasePath(" ")).toBe(""); | |
| expect(normalizeControlUiBasePath("/")).toBe(""); | |
| expect(normalizeControlUiBasePath("ui")).toBe("/ui"); | |
| expect(normalizeControlUiBasePath("/ui/")).toBe("/ui"); | |
| }); | |
| it("builds avatar URLs", () => { | |
| expect(buildControlUiAvatarUrl("", "main")).toBe("/avatar/main"); | |
| expect(buildControlUiAvatarUrl("/ui", "main")).toBe("/ui/avatar/main"); | |
| }); | |
| it("keeps remote and data URLs", () => { | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "https://example.com/avatar.png", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("https://example.com/avatar.png"); | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "data:image/png;base64,abc", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("data:image/png;base64,abc"); | |
| }); | |
| it("prefixes basePath for /avatar endpoints", () => { | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "/avatar/main", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("/ui/avatar/main"); | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "/ui/avatar/main", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("/ui/avatar/main"); | |
| }); | |
| it("maps local avatar paths to the avatar endpoint", () => { | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "avatars/me.png", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("/ui/avatar/main"); | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "avatars/profile", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("/ui/avatar/main"); | |
| }); | |
| it("leaves local paths untouched when agentId is missing", () => { | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "avatars/me.png", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("avatars/me.png"); | |
| }); | |
| it("keeps short text avatars", () => { | |
| expect( | |
| resolveAssistantAvatarUrl({ | |
| avatar: "PS", | |
| agentId: "main", | |
| basePath: "/ui", | |
| }), | |
| ).toBe("PS"); | |
| }); | |
| }); | |