Spaces:
Paused
Paused
File size: 2,464 Bytes
fb4d8fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 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");
});
});
|