"""Tests for DTOs."""

from gnexus_gauth.dto import AuthenticatedUser


class TestAuthenticatedUser:
    def test_avatar_url_from_profile(self) -> None:
        user = AuthenticatedUser(
            user_id="1",
            email="user@example.test",
            email_verified=True,
            profile={"avatar_url": "https://example.com/avatar.jpg"},
        )
        assert user.avatar_url == "https://example.com/avatar.jpg"

    def test_avatar_url_none_when_missing(self) -> None:
        user = AuthenticatedUser(
            user_id="1",
            email="user@example.test",
            email_verified=True,
            profile={},
        )
        assert user.avatar_url is None

    def test_avatar_variants_from_profile(self) -> None:
        user = AuthenticatedUser(
            user_id="1",
            email="user@example.test",
            email_verified=True,
            profile={
                "avatar_variants": {
                    "small": "https://example.com/small.jpg",
                    "medium": "https://example.com/medium.jpg",
                }
            },
        )
        assert user.avatar_variants == {
            "small": "https://example.com/small.jpg",
            "medium": "https://example.com/medium.jpg",
        }

    def test_avatar_variants_empty_when_missing(self) -> None:
        user = AuthenticatedUser(
            user_id="1",
            email="user@example.test",
            email_verified=True,
            profile={},
        )
        assert user.avatar_variants == {}
