From 9b45ece68f138de290fbbc44a87a72588596649e Mon Sep 17 00:00:00 2001 From: Daniel Bedeleanu Date: Sat, 18 Apr 2026 16:50:54 +0000 Subject: [PATCH] test: fix token fixtures to return JWT strings instead of TokenData objects --- backend/tests/conftest.py | 82 +++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py index 6017724a..90555dd5 100644 --- a/backend/tests/conftest.py +++ b/backend/tests/conftest.py @@ -125,7 +125,9 @@ def mock_config(): @pytest.fixture(scope="function") def admin_token(test_db): - """Create a test admin user and return auth token.""" + """Create a test admin user and return JWT token string.""" + from backend.auth import create_access_token + admin = User( username="admin", hashed_password="hashed_password", @@ -136,18 +138,16 @@ def admin_token(test_db): test_db.commit() test_db.refresh(admin) - # Return mocked admin token data - return TokenData( - sub=admin.id, - username="admin", - role="admin", - exp=datetime.now(timezone.utc) - ) + # Return JWT token string (for use in "Bearer {token}" headers) + token = create_access_token(user_id=admin.id, username="admin", role="admin") + return token @pytest.fixture(scope="function") def user_token(test_db): - """Create a test regular user and return auth token.""" + """Create a test regular user and return JWT token string.""" + from backend.auth import create_access_token + user = User( username="user", hashed_password="hashed_password", @@ -158,35 +158,49 @@ def user_token(test_db): test_db.commit() test_db.refresh(user) - # Return mocked user token data - return TokenData( - sub=user.id, - username="user", - role="user", + # Return JWT token string (for use in "Bearer {token}" headers) + token = create_access_token(user_id=user.id, username="user", role="user") + return token + + +@pytest.fixture(scope="function") +def admin_client(test_client, test_db, admin_token): + """Create a test client authenticated as admin.""" + from backend.auth import get_current_user + + # Create TokenData from the JWT token's user info + admin_token_data = TokenData( + sub=1, # First admin user created has id=1 + username="admin", + role="admin", exp=datetime.now(timezone.utc) ) - -@pytest.fixture(scope="function") -def admin_client(test_client, admin_token): - """Create a test client authenticated as admin.""" - def override_get_current_admin(): - return admin_token - - app.dependency_overrides[get_current_admin] = override_get_current_admin - - yield test_client - - app.dependency_overrides.pop(get_current_admin, None) - - -@pytest.fixture(scope="function") -def user_client(test_client, user_token): - """Create a test client authenticated as regular user.""" - from backend.auth import get_current_user - def override_get_current_user(): - return user_token + return admin_token_data + + app.dependency_overrides[get_current_user] = override_get_current_user + + yield test_client + + app.dependency_overrides.pop(get_current_user, None) + + +@pytest.fixture(scope="function") +def user_client(test_client, test_db, user_token): + """Create a test client authenticated as regular user.""" + from backend.auth import get_current_user + + # Create TokenData from the JWT token's user info + user_token_data = TokenData( + sub=2, # Second user created has id=2 + username="user", + role="user", + exp=datetime.now(timezone.utc) + ) + + def override_get_current_user(): + return user_token_data app.dependency_overrides[get_current_user] = override_get_current_user