from __future__ import annotations import pytest from pydantic import ValidationError from v1.auth.schemas import ( AuthTokenResponse, AuthUser, LoginRequest, RefreshRequest, SignupRequest, ) def test_signup_requires_valid_email() -> None: with pytest.raises(ValidationError): SignupRequest(username="demo", email="not-an-email", password="secret123") def test_signup_requires_username() -> None: with pytest.raises(ValidationError): SignupRequest.model_validate( {"email": "user@example.com", "password": "secret123"} ) def test_login_requires_valid_email() -> None: with pytest.raises(ValidationError): LoginRequest(email="invalid", password="secret123") def test_refresh_requires_token() -> None: with pytest.raises(ValidationError): RefreshRequest(refresh_token="") def test_auth_token_response_maps_user() -> None: user = AuthUser(id="user-1", email="user@example.com") response = AuthTokenResponse( access_token="access", refresh_token="refresh", expires_in=3600, token_type="bearer", user=user, ) assert response.user.id == "user-1" assert response.user.email == "user@example.com"