import { describe, expect, it } from "vitest"; import { getAvatarUrl, HABBO_IMAGER_URL, resolveImagerBase } from "./imager"; describe("resolveImagerBase", () => { it("defaults to Habbo imager", () => { expect(resolveImagerBase()).toBe(HABBO_IMAGER_URL); expect(resolveImagerBase("")).toBe(HABBO_IMAGER_URL); expect(resolveImagerBase(null)).toBe(HABBO_IMAGER_URL); }); it("rejects the broken self-hosted proxy", () => { expect(resolveImagerBase("/api/imaging/avatar")).toBe(HABBO_IMAGER_URL); expect( resolveImagerBase("https://www.epicnabbo.nl/api/imaging/avatar"), ).toBe(HABBO_IMAGER_URL); expect(resolveImagerBase("/imaging")).toBe(HABBO_IMAGER_URL); expect( resolveImagerBase("https://www.epicnabbo.nl/imaging"), ).toBe(HABBO_IMAGER_URL); }); it("keeps a custom Habbo-compatible base", () => { expect( resolveImagerBase("https://www.habbo.com/habbo-imaging/avatarimage/"), ).toBe("https://www.habbo.com/habbo-imaging/avatarimage"); }); }); describe("getAvatarUrl", () => { it("builds a Habbo imager URL", () => { const url = getAvatarUrl("hr-115-42.hd-180-1", { size: "l", headOnly: true, direction: 2, }); expect(url.startsWith(`${HABBO_IMAGER_URL}?`)).toBe(true); expect(url).toContain("figure=hr-115-42.hd-180-1"); expect(url).toContain("size=l"); expect(url).toContain("headonly=1"); expect(url).toContain("direction=2"); expect(url).toContain("img_format=png"); }); });