openskynet / src /infra /outbound /identity.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { describe, expect, it, vi } from "vitest";
const resolveAgentIdentityMock = vi.hoisted(() => vi.fn());
const resolveAgentAvatarMock = vi.hoisted(() => vi.fn());
vi.mock("../../agents/identity.js", () => ({
resolveAgentIdentity: (...args: unknown[]) => resolveAgentIdentityMock(...args),
}));
vi.mock("../../agents/identity-avatar.js", () => ({
resolveAgentAvatar: (...args: unknown[]) => resolveAgentAvatarMock(...args),
}));
import { normalizeOutboundIdentity, resolveAgentOutboundIdentity } from "./identity.js";
describe("normalizeOutboundIdentity", () => {
it("trims fields and drops empty identities", () => {
expect(
normalizeOutboundIdentity({
name: " Demo Bot ",
avatarUrl: " https://example.com/a.png ",
emoji: " 🤖 ",
}),
).toEqual({
name: "Demo Bot",
avatarUrl: "https://example.com/a.png",
emoji: "🤖",
});
expect(
normalizeOutboundIdentity({
name: " ",
avatarUrl: "\n",
emoji: "",
}),
).toBeUndefined();
});
});
describe("resolveAgentOutboundIdentity", () => {
it("builds normalized identity data and keeps only remote avatars", () => {
resolveAgentIdentityMock.mockReturnValueOnce({
name: " Agent Smith ",
emoji: " 🕶️ ",
});
resolveAgentAvatarMock.mockReturnValueOnce({
kind: "remote",
url: "https://example.com/avatar.png",
});
expect(resolveAgentOutboundIdentity({} as never, "main")).toEqual({
name: "Agent Smith",
emoji: "🕶️",
avatarUrl: "https://example.com/avatar.png",
});
});
it("drops blank and non-remote avatar values after normalization", () => {
resolveAgentIdentityMock.mockReturnValueOnce({
name: " ",
emoji: "",
});
resolveAgentAvatarMock.mockReturnValueOnce({
kind: "data",
dataUrl: "data:image/png;base64,abc",
});
expect(resolveAgentOutboundIdentity({} as never, "main")).toBeUndefined();
});
it("drops blank remote avatar urls while keeping other identity fields", () => {
resolveAgentIdentityMock.mockReturnValueOnce({
name: " Agent Smith ",
emoji: " 🕶️ ",
});
resolveAgentAvatarMock.mockReturnValueOnce({
kind: "remote",
url: " ",
});
expect(resolveAgentOutboundIdentity({} as never, "main")).toEqual({
name: "Agent Smith",
emoji: "🕶️",
});
});
});