const { evaluateScript, loadHtmlString } = require("./helpers/extension-test-utils"); describe("lucide-client.js", () => { afterEach(() => { document.body.innerHTML = ""; }); it("builds icon URLs and rejects invalid slugs", () => { loadHtmlString(""); evaluateScript("extension/shared/ui-icons.js"); evaluateScript("extension/options/lucide-client.js"); expect(window.lucideIconSvgUrl("alarm-clock")).toContain( "/icons/alarm-clock.svg" ); expect(window.lucideIconSvgUrl("bad slug!!")).toBe(""); expect(window.lucideTagsJsonUrl()).toContain("/tags.json"); }); it("sanitizes SVG before persisting a Lucide icon", () => { loadHtmlString(""); evaluateScript("extension/shared/ui-icons.js"); evaluateScript("extension/options/lucide-client.js"); const sanitized = window.sanitizeLucideSvg(` bad `); expect(sanitized).toContain(" { loadHtmlString(""); evaluateScript("extension/shared/ui-icons.js"); evaluateScript("extension/options/lucide-client.js"); const results = window.searchLucideSlugs( { alarm: ["clock", "time"], "badge-alert": ["alert", "warning"], calendar: ["date", "time"] }, "al", 10 ); expect(results).toEqual(["alarm", "badge-alert", "calendar"]); }); });