cuatrolabs-pos-ms / tests /test_error_handling.py
MukeshKapoor25's picture
feat(staff): implement staff list endpoint with projection support
85e4fac
from unittest.mock import patch, AsyncMock
from fastapi.testclient import TestClient
# Mock database connections before importing app
with patch("app.main.connect_to_mongo", new_callable=AsyncMock), \
patch("app.main.connect_to_database", new_callable=AsyncMock):
from app.main import app
client = TestClient(app)
def test_404_error_handling():
response = client.get("/non-existent-route")
assert response.status_code == 404
data = response.json()
assert data["success"] is False
assert data["error"] == "Not Found"
assert data["detail"] == "Resource not found"
assert "request_id" in data
assert "timestamp" in data
def test_validation_error_handling():
# token query param is required for this endpoint
response = client.post("/debug/verify-token")
assert response.status_code == 422
data = response.json()
assert data["success"] is False
assert data["error"] == "Validation Error"
assert data["detail"] == "The request contains invalid data"
assert "errors" in data
assert isinstance(data["errors"], list)
assert len(data["errors"]) > 0
assert "field" in data["errors"][0]
assert "message" in data["errors"][0]
assert "type" in data["errors"][0]