import { describe, expect, it } from "vitest"; import { findSkill, parseSkillInvocation } from "./skills"; import type { AgentSkill } from "./types"; describe("parseSkillInvocation", () => { it("reconnaît §nom avec ou sans arguments", () => { expect(parseSkillInvocation("§sk_test")).toEqual({ name: "sk_test", args: "" }); expect(parseSkillInvocation(" §sk_test lance sur src/ ")).toEqual({ name: "sk_test", args: "lance sur src/", }); }); it("§ seul : nom vide (liste des skills)", () => { expect(parseSkillInvocation("§")).toEqual({ name: "", args: "" }); }); it("ignore les autres saisies", () => { expect(parseSkillInvocation("bonjour §sk_test")).toBeNull(); expect(parseSkillInvocation("/help")).toBeNull(); }); }); describe("findSkill", () => { const skills: AgentSkill[] = [{ name: "Sk_Test", description: "d", invoke: () => "p" }]; it("exact puis insensible à la casse", () => { expect(findSkill(skills, "Sk_Test")).toBe(skills[0]); expect(findSkill(skills, "sk_test")).toBe(skills[0]); expect(findSkill(skills, "autre")).toBeUndefined(); }); });