import pytest @pytest.mark.asyncio async def test_login_success(client, mitarbeiter_user): response = await client.post( "/api/v1/auth/login", data={"username": "mitarbeiter1", "password": "test-passwort-123"}, ) assert response.status_code == 200 body = response.json() assert body["token_type"] == "bearer" assert body["access_token"] @pytest.mark.asyncio async def test_login_wrong_password(client, mitarbeiter_user): response = await client.post( "/api/v1/auth/login", data={"username": "mitarbeiter1", "password": "falsch"}, ) assert response.status_code == 401 @pytest.mark.asyncio async def test_me_requires_token(client): response = await client.get("/api/v1/auth/me") assert response.status_code == 401 @pytest.mark.asyncio async def test_me_returns_current_user(client, mitarbeiter_user): login_response = await client.post( "/api/v1/auth/login", data={"username": "mitarbeiter1", "password": "test-passwort-123"}, ) token = login_response.json()["access_token"] response = await client.get( "/api/v1/auth/me", headers={"Authorization": f"Bearer {token}"} ) assert response.status_code == 200 body = response.json() assert body["login"] == "mitarbeiter1" assert body["rollen"] == ["mitarbeiter"]