/** * skill-use.ts unit test: the feature module re-exports the `[use_skills]` marker producer * and parser from core's marker module — the block's own semantics (both forms, anchoring, * legacy compat) are covered by packages/core/test/markers.test.ts. What matters here is * that the wiring is intact for the components importing them from this module. */ import { describe, expect, it } from "vitest"; import { buildSkillsMessage, parseSkillsMessage } from "../src/features/chat/skill-use"; describe("skill-use re-exports the core [use_skills] marker helpers", () => { it("builds the square-bracket block and parses it back (round-trip through the feature module)", () => { const text = buildSkillsMessage(["agent-creation", "penguin-cli"], "use them\nline2"); expect(text.startsWith("[use_skills]\n")).toBe(true); expect(parseSkillsMessage(text)).toEqual({ skills: ["agent-creation", "penguin-cli"], rest: "use them\nline2", }); }); it("an empty selection leaves the body untouched; a non-block message does not parse", () => { expect(buildSkillsMessage([], "hello")).toBe("hello"); expect(parseSkillsMessage("plain text mentioning [use_skills] only")).toBeNull(); }); });