# ================================================================ # services/auth/tests/test_users.py # ================================================================ """User management tests""" import pytest from fastapi.testclient import TestClient from sqlalchemy.ext.asyncio import AsyncSession from app.services.user_service import UserService from app.services.auth_service import AuthService from app.schemas.auth import UserRegistration @pytest.mark.asyncio async def test_get_user_by_email(db: AsyncSession): """Test getting user by email""" # Create a user first user_data = UserRegistration( email="test@bakery.es", password="TestPass123", full_name="Test User", language="es" ) created_user = await AuthService.register_user(user_data, db) # Get user by email user = await UserService.get_user_by_email("test@bakery.es", db) assert user is not None assert user.email == "test@bakery.es" assert str(user.id) == created_user.id @pytest.mark.asyncio async def test_update_user(db: AsyncSession): """Test updating user""" # Create a user first user_data = UserRegistration( email="test@bakery.es", password="TestPass123", full_name="Test User", language="es" ) created_user = await AuthService.register_user(user_data, db) # Update user update_data = { "full_name": "Updated User", "phone": "+34987654321" } updated_user = await UserService.update_user(created_user.id, update_data, db) assert updated_user.full_name == "Updated User" assert updated_user.phone == "+34987654321" def test_get_current_user_endpoint(client: TestClient, test_user_data): """Test get current user endpoint""" # Register and login first client.post("/auth/register", json=test_user_data) login_response = client.post("/auth/login", json={ "email": test_user_data["email"], "password": test_user_data["password"] }) token = login_response.json()["access_token"] # Get current user headers = {"Authorization": f"Bearer {token}"} response = client.get("/users/me", headers=headers) assert response.status_code == 200 data = response.json() assert data["email"] == test_user_data["email"] assert data["full_name"] == test_user_data["full_name"]