""" Tests for authentication service. """ import pytest class TestUserContext: """Tests for UserContext dataclass.""" def test_user_context_accepts_l2_server(self) -> None: """ Regression test: UserContext must accept l2_server field. Bug found 2026-01-12: auth_service.py passes l2_server to UserContext but the art-common library was pinned to old version without this field. """ from artdag_common.middleware.auth import UserContext # This should not raise TypeError ctx = UserContext( username="testuser", actor_id="@testuser@example.com", token="test-token", l2_server="https://l2.example.com", ) assert ctx.username == "testuser" assert ctx.actor_id == "@testuser@example.com" assert ctx.token == "test-token" assert ctx.l2_server == "https://l2.example.com" def test_user_context_l2_server_optional(self) -> None: """l2_server should be optional (default None).""" from artdag_common.middleware.auth import UserContext ctx = UserContext( username="testuser", actor_id="@testuser@example.com", ) assert ctx.l2_server is None