Files
A-Team-Security-Infra-Agent…/backend/tests/test_chat.py

60 lines
1.9 KiB
Python

"""Tests for chat session management endpoints."""
import pytest
@pytest.mark.anyio
async def test_list_sessions_empty(client, user_headers):
r = await client.get("/api/chat/sessions", headers=user_headers)
assert r.status_code == 200
body = r.json()
assert isinstance(body, list)
@pytest.mark.anyio
async def test_create_session_via_message(client, user_headers):
"""POST /api/chat with a fake genai config.
The endpoint should respond without a 500 — it may return 200 with a
message_id (background processing will fail) or 400/404 if the config
is not found.
"""
r = await client.post(
"/api/chat",
json={"message": "hello", "genai_config_id": "fake"},
headers=user_headers,
)
assert r.status_code != 500, f"Unexpected server error: {r.text}"
@pytest.mark.anyio
async def test_list_sessions(client, user_headers):
r = await client.get("/api/chat/sessions", headers=user_headers)
assert r.status_code == 200
assert isinstance(r.json(), list)
@pytest.mark.anyio
async def test_rename_session(client, user_headers):
"""Rename a session if one exists, otherwise skip gracefully."""
sessions = (await client.get("/api/chat/sessions", headers=user_headers)).json()
if not sessions:
pytest.skip("No chat session available to rename")
sid = sessions[0]["id"]
r = await client.put(
f"/api/chat/sessions/{sid}/title",
json={"title": "renamed"},
headers=user_headers,
)
assert r.status_code == 200
@pytest.mark.anyio
async def test_delete_session(client, user_headers):
"""Delete a session if one exists, otherwise skip gracefully."""
sessions = (await client.get("/api/chat/sessions", headers=user_headers)).json()
if not sessions:
pytest.skip("No chat session available to delete")
sid = sessions[0]["id"]
r = await client.delete(f"/api/chat/{sid}", headers=user_headers)
assert r.status_code == 200