import { describe, expect, it } from "vitest"; import { avatarUrl, bumpAvatar } from "#lib/avatar.ts"; describe("avatarUrl", () => { it("points at the signing route with the requested size", () => { expect(avatarUrl("did:plc:alice", 96)).toBe("/avatar/did%3Aplc%3Aalice?size=96"); }); it("carries the version of an avatar that was just changed", () => { bumpAvatar("did:plc:bob", "3lk2"); expect(avatarUrl("did:plc:bob", 96)).toBe("/avatar/did%3Aplc%3Abob?size=96&v=3lk2"); expect(avatarUrl("did:plc:carol")).toBe("/avatar/did%3Aplc%3Acarol"); }); it("versions an avatar by the end of its cid", () => { const cid = "bafkreigh2akiscaildc7gnvtklbsfhdgwz72eolmpckbqr5ej26byp3uli"; expect(avatarUrl("did:plc:dave", 96, undefined, cid)).toBe( `/avatar/did%3Aplc%3Adave?size=96&v=${cid.slice(-12)}` ); }); it("prefers the version of an avatar that was just changed over its cid", () => { bumpAvatar("did:plc:erin", "3lk3"); expect(avatarUrl("did:plc:erin", 96, undefined, "bafkreiabcdefghijklmnop")).toBe( "/avatar/did%3Aplc%3Aerin?size=96&v=3lk3" ); }); });