46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
"""Unit tests for Local Dynamic Skill Loader."""
|
|
|
|
import pytest
|
|
from pathlib import Path
|
|
from app.skills.loader import SkillLoader, LocalSkill
|
|
from app.config import get_settings
|
|
|
|
|
|
def test_skill_loader_discovery():
|
|
"""Verify SkillLoader discovers all 4 phase skills under app/skills/."""
|
|
settings = get_settings()
|
|
loader = SkillLoader(settings.SKILLS_DIR)
|
|
skills = loader.load_skills()
|
|
|
|
assert len(skills) >= 4
|
|
assert "requirements_discovery" in skills
|
|
assert "architecture_design" in skills
|
|
assert "validation_rules" in skills
|
|
assert "packaging_guide" in skills
|
|
|
|
|
|
def test_skill_loader_by_phase():
|
|
"""Verify filtering skills by phase."""
|
|
settings = get_settings()
|
|
loader = SkillLoader(settings.SKILLS_DIR)
|
|
loader.load_skills()
|
|
|
|
discover_skills = loader.get_skills_by_phase("discover")
|
|
assert len(discover_skills) == 1
|
|
assert discover_skills[0].name == "requirements_discovery"
|
|
|
|
design_skills = loader.get_skills_by_phase("design")
|
|
assert len(design_skills) == 1
|
|
assert design_skills[0].name == "architecture_design"
|
|
|
|
|
|
def test_format_skills_for_prompt():
|
|
"""Verify formatting skill content into prompt text."""
|
|
settings = get_settings()
|
|
loader = SkillLoader(settings.SKILLS_DIR)
|
|
loader.load_skills()
|
|
|
|
prompt = loader.format_skills_for_prompt("discover")
|
|
assert "## Injected Skill Instructions" in prompt
|
|
assert "requirements_discovery" in prompt
|