mirror of
https://github.com/R0m1k3/Reviflow.git
synced 2026-10-11 17:26:20 +02:00
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import pytest
|
|
|
|
@pytest.mark.anyio
|
|
async def test_health_check(client):
|
|
response = await client.get("/api/health")
|
|
assert response.status_code == 200
|
|
# Allow extra fields, just check status
|
|
assert response.json().get("status") == "ok"
|
|
|
|
@pytest.mark.anyio
|
|
async def test_register_flow(client):
|
|
# Minimal required fields for UserCreate
|
|
user_data = {
|
|
"email": "test@example.com",
|
|
"password": "strongPassword123!",
|
|
"role": "parent" # Specific to our schema
|
|
}
|
|
|
|
response = await client.post("/api/auth/register", json=user_data)
|
|
if response.status_code not in [201, 400]:
|
|
print(f"Registration failed: {response.json()}")
|
|
# 201 Created or 400 Bad Request (if exists)
|
|
assert response.status_code in [201, 400]
|
|
|
|
@pytest.mark.anyio
|
|
async def test_login_flow(client, anyio_backend):
|
|
login_data = {
|
|
"username": "test@example.com",
|
|
"password": "strongPassword123!"
|
|
}
|
|
# Correct path for fastapi-users JWT strategy
|
|
response = await client.post("/api/auth/jwt/login", data=login_data)
|
|
|
|
if response.status_code == 200:
|
|
assert "access_token" in response.json()
|
|
else:
|
|
# 400/401 acceptable if user creation failed or db issue
|
|
assert response.status_code in [400, 401]
|