55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
"""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
|