from httpx import AsyncClient async def test_health_endpoint(client: AsyncClient) -> None: response = await client.get("/health") assert response.status_code == 200 data = response.json() assert data["status"] == "ok" async def test_app_has_title(client: AsyncClient) -> None: response = await client.get("/openapi.json") assert response.status_code == 200 data = response.json() assert data["info"]["title"] == "Porchlight" async def test_app_has_repos_on_state(client: AsyncClient) -> None: from fastapi_oidc_op.store.protocols import ( CredentialRepository, MagicLinkRepository, UserRepository, ) app = client._transport.app # type: ignore[union-attr] assert isinstance(app.state.user_repo, UserRepository) assert isinstance(app.state.credential_repo, CredentialRepository) assert isinstance(app.state.magic_link_repo, MagicLinkRepository) async def test_dependency_functions() -> None: from unittest.mock import MagicMock from fastapi_oidc_op.dependencies import ( get_credential_repo, get_magic_link_repo, get_user_repo, ) request = MagicMock() request.app.state.user_repo = "user_repo_sentinel" request.app.state.credential_repo = "credential_repo_sentinel" request.app.state.magic_link_repo = "magic_link_repo_sentinel" assert get_user_repo(request) == "user_repo_sentinel" assert get_credential_repo(request) == "credential_repo_sentinel" assert get_magic_link_repo(request) == "magic_link_repo_sentinel"