PawTrace / backend /tests /test_auth.py
Elliott Duke
HomingPet: lost-dog reunification (FastAPI + React) with Render deploy
de1e3fc
Raw
History Blame Contribute Delete
1.29 kB
from tests.conftest import auth
def test_register_and_me(client):
r = client.post(
"/auth/register",
json={"name": "A", "email": "a@example.com", "password": "password123", "zip": "20001"},
)
assert r.status_code == 201
token = r.json()["access_token"]
me = client.get("/auth/me", headers=auth(token))
assert me.status_code == 200
assert me.json()["email"] == "a@example.com"
assert me.json()["role"] == "owner"
def test_duplicate_email_rejected(client):
body = {"name": "A", "email": "dup@example.com", "password": "password123", "zip": "20001"}
assert client.post("/auth/register", json=body).status_code == 201
assert client.post("/auth/register", json=body).status_code == 409
def test_login_wrong_password(client):
client.post(
"/auth/register",
json={"name": "A", "email": "b@example.com", "password": "password123", "zip": "20001"},
)
r = client.post("/auth/login", json={"email": "b@example.com", "password": "wrong"})
assert r.status_code == 401
def test_me_requires_auth(client):
assert client.get("/auth/me").status_code == 401
def test_error_envelope_shape(client):
r = client.get("/auth/me")
assert "error" in r.json()
assert r.json()["error"]["code"] == 401