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