import { describe, expect, it } from "vitest"; import { isProjectColor, isProjectIcon, PROJECT_ICONS, projectLook } from "./project-look.js"; describe("project look", () => { it("falls back to the default icon and color", () => { const look = projectLook({ icon: null, color: "not-a-color" }); expect(look.icon.id).toBe("folder"); expect(look.color.id).toBe("violet"); }); it("keeps a chosen icon and color", () => { const look = projectLook({ icon: "rocket-not-listed", color: "green" }); expect(look.icon.id).toBe("folder"); expect(look.color.id).toBe("green"); expect(projectLook({ icon: "music" }).icon.ios).toBe("music.note"); }); it("validates ids and offers a large unique catalog", () => { expect(isProjectIcon("leaf")).toBe(true); expect(isProjectIcon("Leaf")).toBe(false); expect(isProjectColor("orange")).toBe(true); expect(isProjectColor("#FF0000")).toBe(false); expect(PROJECT_ICONS.length).toBeGreaterThanOrEqual(60); expect(new Set(PROJECT_ICONS.map((icon) => icon.id)).size).toBe(PROJECT_ICONS.length); }); });