25 lines
784 B
Python
25 lines
784 B
Python
from unittest.mock import AsyncMock
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from app.main import app
|
|
|
|
|
|
def test_healthz_returns_200_when_database_is_available(monkeypatch) -> None:
|
|
monkeypatch.setattr("app.web.routers.health.check_database", AsyncMock(return_value=True))
|
|
client = TestClient(app)
|
|
|
|
response = client.get("/healthz")
|
|
|
|
assert response.status_code == 200
|
|
assert response.json() == {"status": "ok"}
|
|
|
|
|
|
def test_healthz_returns_500_when_database_is_unavailable(monkeypatch) -> None:
|
|
monkeypatch.setattr("app.web.routers.health.check_database", AsyncMock(return_value=False))
|
|
client = TestClient(app)
|
|
|
|
response = client.get("/healthz")
|
|
|
|
assert response.status_code == 500
|
|
assert response.json()["detail"] == "database unavailable"
|