from fastapi.testclient import TestClient

from jarvis_gateway.main import app


client = TestClient(app)


def test_healthz_returns_ok_demo() -> None:
    response = client.get("/api/healthz")
    assert response.status_code == 200
    payload = response.json()
    assert payload["status"] == "ok"
    assert payload["demo_mode"] is True


def test_modules_returns_five_modules() -> None:
    response = client.get("/api/modules")
    assert response.status_code == 200
    payload = response.json()
    assert len(payload) == 5
    assert {item["module_id"] for item in payload} == {"finance", "health", "autoshorts", "family", "system"}


def test_overview_limits() -> None:
    response = client.get("/api/overview")
    assert response.status_code == 200
    payload = response.json()
    assert len(payload["modules"]) <= 5
    assert len(payload["attention_items"]) <= 5


def test_supporting_endpoints_work() -> None:
    for path in ["/api/activity", "/api/approvals", "/api/reports", "/api/redaction-policy"]:
        response = client.get(path)
        assert response.status_code == 200, path
