2026-03-14 11:14:34 -05:00
|
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
|
import { parseSkillImportSourceInput } from "../services/company-skills.js";
|
|
|
|
|
|
|
|
|
|
describe("company skill import source parsing", () => {
|
|
|
|
|
it("parses a skills.sh command without executing shell input", () => {
|
|
|
|
|
const parsed = parseSkillImportSourceInput(
|
|
|
|
|
"npx skills add https://github.com/vercel-labs/skills --skill find-skills",
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
expect(parsed.resolvedSource).toBe("https://github.com/vercel-labs/skills");
|
|
|
|
|
expect(parsed.requestedSkillSlug).toBe("find-skills");
|
2026-03-14 13:52:20 -05:00
|
|
|
expect(parsed.warnings).toEqual([]);
|
2026-03-14 11:14:34 -05:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("parses owner/repo/skill shorthand as a GitHub repo plus requested skill", () => {
|
|
|
|
|
const parsed = parseSkillImportSourceInput("vercel-labs/skills/find-skills");
|
|
|
|
|
|
|
|
|
|
expect(parsed.resolvedSource).toBe("https://github.com/vercel-labs/skills");
|
|
|
|
|
expect(parsed.requestedSkillSlug).toBe("find-skills");
|
|
|
|
|
});
|
2026-03-14 13:52:20 -05:00
|
|
|
|
|
|
|
|
it("parses skills.sh commands whose requested skill differs from the folder name", () => {
|
|
|
|
|
const parsed = parseSkillImportSourceInput(
|
|
|
|
|
"npx skills add https://github.com/remotion-dev/skills --skill remotion-best-practices",
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
expect(parsed.resolvedSource).toBe("https://github.com/remotion-dev/skills");
|
|
|
|
|
expect(parsed.requestedSkillSlug).toBe("remotion-best-practices");
|
|
|
|
|
});
|
2026-03-14 11:14:34 -05:00
|
|
|
});
|