Files
boc/landvex/user-management/tests/test_invitations.py
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

66 lines
2.1 KiB
Python

"""Tester för invitation-flödet."""
import pytest
from httpx import AsyncClient
from app.models import User
@pytest.mark.asyncio
async def test_create_invitation(client: AsyncClient, admin_token: str):
response = await client.post("/api/v1/invitations", headers={"Authorization": f"Bearer {admin_token}"}, json={
"email": "invited@landvex.se",
"role": "viewer",
})
assert response.status_code == 201
data = response.json()
assert data["email"] == "invited@landvex.se"
assert data["role"] == "viewer"
assert "token" in data
@pytest.mark.asyncio
async def test_validate_invitation(client: AsyncClient, admin_token: str):
# Skapa inbjudan
response = await client.post("/api/v1/invitations", headers={"Authorization": f"Bearer {admin_token}"}, json={
"email": "validate@landvex.se",
"role": "analyst",
})
token = response.json()["token"]
response = await client.get(f"/api/v1/invitations/validate/{token}")
assert response.status_code == 200
data = response.json()
assert data["valid"] is True
assert data["email"] == "validate@landvex.se"
@pytest.mark.asyncio
async def test_accept_invitation(client: AsyncClient, admin_token: str):
# Skapa inbjudan
response = await client.post("/api/v1/invitations", headers={"Authorization": f"Bearer {admin_token}"}, json={
"email": "accept@landvex.se",
"role": "manager",
})
token = response.json()["token"]
response = await client.post("/api/v1/invitations/accept", json={
"token": token,
"first_name": "Accepted",
"last_name": "User",
"password": "newpassword123",
})
assert response.status_code == 200
data = response.json()
assert data["email"] == "accept@landvex.se"
assert data["role"] == "manager"
assert data["status"] == "active"
# Försök acceptera igen — ska misslyckas
response = await client.post("/api/v1/invitations/accept", json={
"token": token,
"first_name": "Accepted",
"last_name": "User",
"password": "newpassword123",
})
assert response.status_code == 400