30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
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");
|
|
expect(parsed.warnings).toEqual([]);
|
|
});
|
|
|
|
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");
|
|
});
|
|
|
|
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");
|
|
});
|
|
});
|