apigateway / tests /e2e /test_auth_e2e.py
jebin2's picture
feat: Add comprehensive E2E testing framework with authenticated flows
3e6248e
"""
E2E Tests for Authentication Flow
Tests real authentication with live server.
Google OAuth is mocked via test endpoint.
"""
import pytest
from unittest.mock import patch
from google_auth_service import GoogleUserInfo
class TestAuthE2E:
"""Test authentication flow with real server."""
def test_check_registration_not_found(self, api_client):
"""Check registration for non-existent user."""
response = api_client.post("/auth/check-registration", json={
"user_id": "nonexistent@example.com"
})
assert response.status_code == 200
data = response.json()
assert data["is_registered"] is False
def test_auth_me_without_token(self, api_client):
"""Access /auth/me without token returns 401."""
response = api_client.get("/auth/me")
assert response.status_code == 401
def test_auth_me_with_invalid_token(self, api_client):
"""Access /auth/me with invalid token returns 401."""
response = api_client.get("/auth/me", headers={
"Authorization": "Bearer invalid.token.here"
})
assert response.status_code == 401
class TestProtectedEndpointsAuthE2E:
"""Test that auth endpoints are protected correctly."""
def test_logout_without_auth(self, api_client):
"""Logout without auth should still work (clear cookies)."""
response = api_client.post("/auth/logout")
# Logout typically returns 200 even without auth (just clears cookie)
assert response.status_code in [200, 401]
def test_refresh_without_token(self, api_client):
"""Refresh without token returns 401."""
response = api_client.post("/auth/refresh")
assert response.status_code in [401, 422]