"""API endpoint tests for session handoffs.""" import pytest from httpx import AsyncClient from app.models.ai_session import AISession @pytest.mark.asyncio async def test_create_park_handoff_api(client: AsyncClient, test_user, auth_headers, test_db): """POST /ai-sessions/{id}/handoff with intent=park.""" session = AISession( user_id=test_user["user_data"]["id"], account_id=test_user["user_data"]["account_id"], session_type="guided", intake_type="free_text", intake_content={"text": "test"}, status="active", confidence_tier="discovery", conversation_messages=[], ) test_db.add(session) await test_db.commit() resp = await client.post( f"/api/v1/ai-sessions/{session.id}/handoff", headers=auth_headers, json={"intent": "park", "engineer_notes": "Waiting for logs"}, ) assert resp.status_code == 201 data = resp.json() assert data["intent"] == "park" @pytest.mark.asyncio async def test_get_queue(client: AsyncClient, test_user, auth_headers, test_db): """GET /ai-sessions/queue returns unclaimed handoffs.""" session = AISession( user_id=test_user["user_data"]["id"], account_id=test_user["user_data"]["account_id"], session_type="guided", intake_type="free_text", intake_content={"text": "test"}, status="active", confidence_tier="discovery", conversation_messages=[], ) test_db.add(session) await test_db.commit() # Create a handoff await client.post( f"/api/v1/ai-sessions/{session.id}/handoff", headers=auth_headers, json={"intent": "escalate", "engineer_notes": "Need help"}, ) resp = await client.get("/api/v1/ai-sessions/queue", headers=auth_headers) assert resp.status_code == 200 data = resp.json() assert len(data) >= 1