import httpx
import pytest

from src import main


@pytest.mark.anyio
async def test_live_gitea_api_responses_cannot_be_stored_by_shared_caches(monkeypatch):
    async def user():
        return {"id": 1, "login": "timmy"}

    async def empty_collection():
        return []

    async def empty_events(user_data=None):
        return []

    monkeypatch.setattr(main, "current_user", user)
    monkeypatch.setattr(main, "repos", empty_collection)
    monkeypatch.setattr(main, "issues", empty_collection)
    monkeypatch.setattr(main, "pull_requests", empty_collection)
    monkeypatch.setattr(main, "activity_events", empty_events)

    transport = httpx.ASGITransport(app=main.app)
    async with httpx.AsyncClient(transport=transport, base_url="http://test") as client:
        for path in ("/api/v1/context", "/api/v1/events", "/api/v1/live"):
            response = await client.get(path)

            assert response.status_code == 200
            assert response.headers["cache-control"] == "no-store"
