import pytest from datetime import datetime from app.models.session import SessionType, TaskStatus, Task from app.services.history import HistoryService, history_service class TestHistoryService: @pytest.fixture(autouse=True) def setup(self, mock_settings, monkeypatch): from app.services import storage self.storage = storage.storage self.history = history_service self.history._history = [] def test_add_task_history(self): task = Task( id="task-1", type=SessionType.EPHEMERAL, prompt="test prompt", status=TaskStatus.COMPLETED, created_at=datetime.now(), finished_at=datetime.now() ) self.history.add_task_history(task) assert len(self.history._history) == 1 assert self.history._history[0]["id"] == "task-1" def test_get_history(self): for i in range(5): task = Task( id=f"task-{i}", type=SessionType.EPHEMERAL, prompt=f"prompt {i}", status=TaskStatus.COMPLETED, created_at=datetime.now() ) self.history.add_task_history(task) history = self.history.get_history() assert len(history) == 5 def test_get_history_with_limit(self): for i in range(10): task = Task( id=f"task-{i}", type=SessionType.EPHEMERAL, prompt=f"prompt {i}", status=TaskStatus.COMPLETED, created_at=datetime.now() ) self.history.add_task_history(task) history = self.history.get_history(limit=3) assert len(history) == 3 def test_clear_history(self): task = Task( id="task-1", type=SessionType.EPHEMERAL, prompt="test", status=TaskStatus.COMPLETED, created_at=datetime.now() ) self.history.add_task_history(task) self.history.clear_history() assert len(self.history._history) == 0