async def test_health_reports_db(client): r = await client.get("/api/v1/health") assert r.status_code == 200 body = r.json() assert body["status"] == "ok" assert body["database"] == "ok" async def test_health_is_503_when_the_database_is_down(app, client): from fintracker.api.deps import get_session class _Broken: async def execute(self, *_a, **_k): raise ConnectionRefusedError async def broken(): yield _Broken() app.dependency_overrides[get_session] = broken r = await client.get("/api/v1/health") assert r.status_code == 503 assert r.json()["status"] == "degraded" assert r.json()["database"].startswith("error")