32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
|
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();
|
||
|
|
});
|
||
|
|
});
|