from __future__ import annotations from datetime import UTC, datetime from arbitrade.config.settings import Settings from arbitrade.storage.db import DuckDBStore from arbitrade.storage.repositories import AuditRecord, AuditRepository def test_audit_repository_inserts_and_lists_recent(tmp_path) -> None: settings = Settings(_env_file=None, DUCKDB_PATH=tmp_path / "audit.duckdb") store = DuckDBStore(settings) store.migrate() repository = AuditRepository(store) repository.insert( AuditRecord( occurred_at=datetime.now(UTC), actor="dashboard_user", event_type="dashboard.control.start", decision="approved", payload={"execution_status": "running"}, correlation_id="req-1", ) ) recent = repository.list_recent(limit=5) assert len(recent) == 1 assert recent[0].actor == "dashboard_user" assert recent[0].event_type == "dashboard.control.start" assert recent[0].decision == "approved" assert recent[0].payload == {"execution_status": "running"} assert recent[0].correlation_id == "req-1"