MagicCode/packages/core/src/skills.test.ts

32 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-10-11 00:11:20 +00:00
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();
});
});