mirror of
https://github.com/github/spec-kit.git
synced 2026-07-13 05:05:16 +08:00
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""Tests for VibeIntegration."""
|
|
|
|
import yaml
|
|
|
|
from specify_cli.integrations import get_integration
|
|
from specify_cli.integrations.manifest import IntegrationManifest
|
|
|
|
from .test_integration_base_skills import SkillsIntegrationTests
|
|
|
|
|
|
class TestVibeIntegration(SkillsIntegrationTests):
|
|
KEY = "vibe"
|
|
FOLDER = ".vibe/"
|
|
COMMANDS_SUBDIR = "skills"
|
|
REGISTRAR_DIR = ".vibe/skills"
|
|
|
|
|
|
class TestVibeUserInvocable:
|
|
def test_all_skills_have_user_invocable(self, tmp_path):
|
|
i = get_integration("vibe")
|
|
m = IntegrationManifest("vibe", tmp_path)
|
|
created = i.setup(tmp_path, m, script_type="sh")
|
|
skill_files = [f for f in created if f.name == "SKILL.md"]
|
|
assert skill_files
|
|
for f in skill_files:
|
|
content = f.read_text(encoding="utf-8")
|
|
assert content.startswith("---"), (
|
|
f"{f.parent.name}/SKILL.md is missing the opening frontmatter delimiter '---'"
|
|
)
|
|
parts = content.split("---", 2)
|
|
assert len(parts) >= 3, (
|
|
f"{f.parent.name}/SKILL.md has malformed frontmatter; expected a '--- ... ---' block"
|
|
)
|
|
parsed = yaml.safe_load(parts[1])
|
|
assert parsed.get("user-invocable") is True, (
|
|
f"{f.parent.name}/SKILL.md is missing user-invocable: true in frontmatter"
|
|
)
|