Files
voidea/tests/unit/agents/test_spec_agent.py
T

76 lines
2.1 KiB
Python

"""Tests for SpecAgent."""
import pytest
from pathlib import Path
from app.agents.spec_agent import SpecAgent
@pytest.fixture
def spec_agent():
return SpecAgent()
@pytest.mark.asyncio
async def test_spec_agent_initialization(spec_agent):
"""Test SpecAgent initializes correctly."""
assert spec_agent.name == "spec_agent"
assert spec_agent.version == "1.0.0"
@pytest.mark.asyncio
async def test_spec_agent_health_check(spec_agent):
"""Test SpecAgent health check."""
result = await spec_agent.health_check()
assert isinstance(result, bool)
@pytest.mark.asyncio
async def test_spec_agent_check_version(spec_agent):
"""Test SpecAgent version check."""
result = await spec_agent.run({"action": "check"})
assert result.success
assert "current_version" in result.data
@pytest.mark.asyncio
async def test_spec_agent_bump_version(spec_agent):
"""Test SpecAgent version bump."""
context = {
"action": "version_bump",
"version_type": "patch",
}
result = await spec_agent.run(context)
assert result.success
assert "new_version" in result.data
@pytest.mark.asyncio
async def test_spec_agent_parse_commit_type(spec_agent):
"""Test commit type parsing."""
assert spec_agent._parse_commit_type("feat: add feature") == "feat"
assert spec_agent._parse_commit_type("fix: bug fix") == "fix"
assert spec_agent._parse_commit_type("docs: update docs") == "docs"
@pytest.mark.asyncio
async def test_spec_agent_parse_commit_message(spec_agent):
"""Test commit message parsing."""
assert "add feature" in spec_agent._parse_commit_message("feat: add feature")
assert "bug fix" in spec_agent._parse_commit_message("fix: bug fix")
@pytest.mark.asyncio
async def test_spec_agent_metrics(spec_agent):
"""Test SpecAgent metrics."""
metrics = await spec_agent.get_metrics()
assert "agent_id" in metrics
assert "version" in metrics
assert "status" in metrics
@pytest.mark.asyncio
async def test_spec_agent_unknown_action(spec_agent):
"""Test SpecAgent with unknown action."""
result = await spec_agent.run({"action": "unknown"})
assert result.success