import pytest from fastapi.testclient import TestClient from jira_webhook_llm import app from llm.models import JiraWebhookPayload def test_llm_response_format(test_client, mock_jira_payload): response = test_client.post("/jira-webhook", json=mock_jira_payload) assert response.status_code == 200 response_data = response.json() # Validate response structure assert "response" in response_data assert "analysis" in response_data["response"] assert "recommendations" in response_data["response"] assert "status" in response_data["response"] def test_llm_response_content_validation(test_client, mock_jira_payload): response = test_client.post("/jira-webhook", json=mock_jira_payload) response_data = response.json() # Validate content types assert isinstance(response_data["response"]["analysis"], str) assert isinstance(response_data["response"]["recommendations"], list) assert isinstance(response_data["response"]["status"], str) def test_llm_error_handling(test_client): # Test with invalid payload invalid_payload = {"invalid": "data"} response = test_client.post("/jira-webhook", json=invalid_payload) assert response.status_code == 422 # Test with empty payload response = test_client.post("/jira-webhook", json={}) assert response.status_code == 422