import { describe, expect, it } from "vitest"; import { buildAgentMentionHref, buildProjectMentionHref, buildSkillMentionHref, extractAgentMentionIds, extractProjectMentionIds, extractSkillMentionIds, parseAgentMentionHref, parseProjectMentionHref, parseSkillMentionHref, } from "./project-mentions.js"; describe("project-mentions", () => { it("round-trips project mentions with color metadata", () => { const href = buildProjectMentionHref("project-123", "#336699"); expect(parseProjectMentionHref(href)).toEqual({ projectId: "project-123", color: "#336699", }); expect(extractProjectMentionIds(`[@Paperclip App](${href})`)).toEqual(["project-123"]); }); it("round-trips agent mentions with icon metadata", () => { const href = buildAgentMentionHref("agent-123", "code"); expect(parseAgentMentionHref(href)).toEqual({ agentId: "agent-123", icon: "code", }); expect(extractAgentMentionIds(`[@CodexCoder](${href})`)).toEqual(["agent-123"]); }); it("round-trips skill mentions with slug metadata", () => { const href = buildSkillMentionHref("skill-123", "release-changelog"); expect(parseSkillMentionHref(href)).toEqual({ skillId: "skill-123", slug: "release-changelog", }); expect(extractSkillMentionIds(`[/release-changelog](${href})`)).toEqual(["skill-123"]); }); });