galaxis-po/backend/tests/e2e/test_auth_flow.py
zephyrdark efcfc0e090 feat: add E2E tests for backend and frontend
Backend (pytest):
- Auth flow tests (login, token, protected routes)
- Portfolio CRUD and transaction tests
- Strategy endpoint tests
- Backtest flow tests
- Snapshot and returns tests

Frontend (Playwright):
- Auth page tests
- Portfolio navigation tests
- Strategy page tests
- Backtest page tests
- Playwright configuration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:30:13 +09:00

76 lines
2.1 KiB
Python

"""
E2E tests for authentication flow.
"""
import pytest
from fastapi.testclient import TestClient
def test_health_check(client: TestClient):
"""Test health check endpoint."""
response = client.get("/health")
assert response.status_code == 200
assert response.json() == {"status": "healthy"}
def test_login_success(client: TestClient, test_user):
"""Test successful login."""
response = client.post(
"/api/auth/login",
data={
"username": "testuser",
"password": "testpassword",
},
)
assert response.status_code == 200
data = response.json()
assert "access_token" in data
assert data["token_type"] == "bearer"
def test_login_wrong_password(client: TestClient, test_user):
"""Test login with wrong password."""
response = client.post(
"/api/auth/login",
data={
"username": "testuser",
"password": "wrongpassword",
},
)
assert response.status_code == 401
def test_login_nonexistent_user(client: TestClient):
"""Test login with nonexistent user."""
response = client.post(
"/api/auth/login",
data={
"username": "nonexistent",
"password": "password",
},
)
assert response.status_code == 401
def test_get_current_user(client: TestClient, auth_headers):
"""Test getting current user info."""
response = client.get("/api/auth/me", headers=auth_headers)
assert response.status_code == 200
data = response.json()
assert data["username"] == "testuser"
assert data["email"] == "test@example.com"
def test_get_current_user_no_token(client: TestClient):
"""Test getting current user without token."""
response = client.get("/api/auth/me")
assert response.status_code == 401
def test_get_current_user_invalid_token(client: TestClient):
"""Test getting current user with invalid token."""
response = client.get(
"/api/auth/me",
headers={"Authorization": "Bearer invalid_token"},
)
assert response.status_code == 401