Spaces:
Running
Running
| def test_share_link_creation_success(client, auth_headers, assistant_message): | |
| response = client.post( | |
| f"/api/v1/chat/share/{assistant_message.id}", | |
| headers=auth_headers, | |
| ) | |
| assert response.status_code == 200 | |
| payload = response.json() | |
| assert payload["message_id"] == assistant_message.id | |
| assert payload["share_url"] == f"/share?message_id={assistant_message.id}" | |
| def test_share_link_unauthorized_for_other_users_message(client, auth_headers, other_user_assistant_message): | |
| response = client.post( | |
| f"/api/v1/chat/share/{other_user_assistant_message.id}", | |
| headers=auth_headers, | |
| ) | |
| assert response.status_code == 404 | |
| assert response.json()["error"]["message"] == "Message not found" | |
| def test_cannot_share_user_message(client, auth_headers, user_message): | |
| response = client.post( | |
| f"/api/v1/chat/share/{user_message.id}", | |
| headers=auth_headers, | |
| ) | |
| assert response.status_code == 400 | |
| assert response.json()["error"]["message"] == "Only assistant messages can be shared" | |
| def test_public_fetch_fails_before_share(client, assistant_message): | |
| response = client.get(f"/api/v1/chat/share/{assistant_message.id}") | |
| assert response.status_code == 404 | |
| assert response.json()["error"]["message"] == "Shared Answer not found" | |
| def test_public_fetch_shared_answer_success_after_share(client, auth_headers, assistant_message): | |
| share_response = client.post( | |
| f"/api/v1/chat/share/{assistant_message.id}", | |
| headers=auth_headers, | |
| ) | |
| assert share_response.status_code == 200 | |
| response = client.get(f"/api/v1/chat/share/{assistant_message.id}") | |
| assert response.status_code == 200 | |
| payload = response.json() | |
| assert payload["id"] == assistant_message.id | |
| assert payload["content"] == "Shared assistant answer" | |
| assert len(payload["sources"]) == 1 | |
| assert payload["sources"][0]["filename"] == "file.txt" | |
| def test_missing_message_returns_404(client): | |
| response = client.get("/api/v1/chat/share/missing-message-id") | |
| assert response.status_code == 404 | |
| assert response.json()["error"]["message"] == "Shared Answer not found" | |