"""Tests for mock Keycloak client.""" import pytest from app.infrastructure.auth.mock_client import MockKeycloakClient class TestMockKeycloakClient: """Test MockKeycloakClient token introspection.""" @pytest.fixture def client(self) -> MockKeycloakClient: """Create mock client instance.""" return MockKeycloakClient() @pytest.mark.asyncio async def test_introspect_user_token(self, client: MockKeycloakClient) -> None: """Test introspecting user token.""" result = await client.introspect_token("dev-token-user") assert result.is_valid is True assert result.user_id == "dev-user" assert result.username == "Dev User" assert result.email == "dev.user@example.com" assert result.roles == ["user"] @pytest.mark.asyncio async def test_introspect_user2_token(self, client: MockKeycloakClient) -> None: """Test introspecting user2 token.""" result = await client.introspect_token("dev-token-user2") assert result.is_valid is True assert result.user_id == "dev-user2" assert result.username == "Test User" assert result.roles == ["user"] @pytest.mark.asyncio async def test_introspect_admin_token(self, client: MockKeycloakClient) -> None: """Test introspecting admin token.""" result = await client.introspect_token("dev-token-admin") assert result.is_valid is True assert result.user_id == "dev-admin" assert result.username == "Dev Admin" assert result.roles == ["admin"] @pytest.mark.asyncio async def test_introspect_guest_token(self, client: MockKeycloakClient) -> None: """Test introspecting guest token returns inactive.""" result = await client.introspect_token("dev-token-guest") assert result.is_valid is False @pytest.mark.asyncio async def test_introspect_unknown_token(self, client: MockKeycloakClient) -> None: """Test introspecting unknown token returns inactive.""" result = await client.introspect_token("unknown-token") assert result.is_valid is False