| """ |
| Run: pytest api/test_supabase_auth.py -v |
| """ |
| import pytest |
| from fastapi.testclient import TestClient |
| from api.main import app |
|
|
| client = TestClient(app) |
|
|
|
|
| def test_signup(): |
| """Test user signup.""" |
| response = client.post( |
| "/api/v1/auth/signup", |
| json={ |
| "email": f"test-{id(object())}@example.com", |
| "password": "TestPassword123!", |
| "full_name": "Test User", |
| }, |
| ) |
| |
| print(f"Signup response: {response.status_code}") |
| if response.status_code == 200: |
| assert "access_token" in response.json() |
|
|
|
|
| def test_health_check(): |
| """Test health check endpoint.""" |
| response = client.get("/health") |
| assert response.status_code == 200 |
| assert response.json()["status"] == "healthy" |
|
|
|
|
| def test_root(): |
| """Test root endpoint.""" |
| response = client.get("/") |
| assert response.status_code == 200 |
| assert "message" in response.json() |
|
|
|
|
| def test_protected_endpoint_without_token(): |
| """Test that protected endpoint requires token.""" |
| response = client.get("/api/v1/auth/me") |
| assert response.status_code == 403 |
|
|
|
|
| def test_protected_endpoint_with_invalid_token(): |
| """Test that invalid token is rejected.""" |
| response = client.get( |
| "/api/v1/auth/me", |
| headers={"Authorization": "Bearer invalid.token.here"}, |
| ) |
| assert response.status_code == 401 |
|
|