Files
vector/backend/tests/test_admin_dashboard_api.py
T
2026-06-06 20:59:23 +00:00

41 lines
1.4 KiB
Python

from backend.database import db
from backend.main import app
from fastapi.testclient import TestClient
client = TestClient(app)
def setup_function() -> None:
db._cases.clear() # type: ignore[attr-defined]
def test_admin_dashboard_reflects_outcomes_and_distance_median() -> None:
db.create_case(age=12, gender='female', status='new')
db.create_case(age=17, gender='male', status='analyzed', found_alive=True, found_distance_km=2.0)
db.create_case(age=19, gender='female', status='closed', found_alive=False, found_distance_km=6.0)
response = client.get('/api/v1/admin/dashboard')
assert response.status_code == 200
payload = response.json()
assert payload['total_cases'] == 3
assert payload['found_alive_count'] == 1
assert payload['found_deceased_count'] == 1
assert payload['unknown_outcome_count'] == 1
assert payload['median_found_distance_km'] == 4.0
assert payload['recent_activity_count'] == 3
def test_admin_dashboard_is_zero_safe_when_no_cases_exist() -> None:
response = client.get('/api/v1/admin/dashboard')
assert response.status_code == 200
payload = response.json()
assert payload['total_cases'] == 0
assert payload['found_alive_count'] == 0
assert payload['found_deceased_count'] == 0
assert payload['unknown_outcome_count'] == 0
assert payload['median_found_distance_km'] is None
assert payload['recent_activity_count'] == 0