Spaces:
Sleeping
Sleeping
File size: 1,465 Bytes
49e9f9d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import pytest
from unittest.mock import AsyncMock, MagicMock
from bson import ObjectId
@pytest.mark.asyncio
async def test_register_success(client):
c, db = client
db.users.find_one = AsyncMock(return_value=None)
db.users.insert_one = AsyncMock(
return_value=MagicMock(inserted_id=ObjectId())
)
payload = {
"name": "Test User",
"email": "test@example.com",
"password": "secret123",
"role": "reporter",
"location": {"type": "Point", "coordinates": [76.7794, 30.7333]},
}
resp = await c.post("/api/auth/register", json=payload)
assert resp.status_code == 201
assert "token" in resp.json()
@pytest.mark.asyncio
async def test_register_duplicate_email(client):
c, db = client
db.users.find_one = AsyncMock(return_value={"email": "test@example.com"})
payload = {
"name": "Test User",
"email": "test@example.com",
"password": "secret123",
"role": "reporter",
"location": {"type": "Point", "coordinates": [76.7794, 30.7333]},
}
resp = await c.post("/api/auth/register", json=payload)
assert resp.status_code == 400
@pytest.mark.asyncio
async def test_login_invalid_credentials(client):
c, db = client
db.users.find_one = AsyncMock(return_value=None)
resp = await c.post(
"/api/auth/login",
json={"email": "nobody@example.com", "password": "wrong"},
)
assert resp.status_code == 401
|