system-prompts-and-models-o.../salesflow-saas/backend/tests/test_autonomous_foundation_api.py
2026-04-04 18:04:21 +03:00

80 lines
2.7 KiB
Python

import pytest
@pytest.mark.asyncio
async def test_executive_roi_endpoint(client):
response = await client.post(
"/api/v1/autonomous-foundation/dashboard/executive-roi",
json={
"baseline": {"revenue": 100000},
"current": {
"revenue": 130000,
"win_rate": 0.31,
"pipeline_velocity_days": 19,
"manual_work_reduction_percent": 72,
},
},
)
assert response.status_code == 200
payload = response.json()
assert payload["revenue_lift_percent"] == 30.0
assert payload["manual_work_reduction_percent"] == 72
@pytest.mark.asyncio
async def test_connectivity_endpoint(client):
response = await client.post(
"/api/v1/autonomous-foundation/integrations/connectivity-test",
json={},
)
assert response.status_code == 200
payload = response.json()
assert "salesforce" in payload
assert "whatsapp" in payload
assert "stripe" in payload
assert "summary" in payload
assert payload["salesforce"].get("status") in ("ok", "error")
@pytest.mark.asyncio
async def test_live_readiness_endpoint(client):
response = await client.get("/api/v1/autonomous-foundation/integrations/live-readiness")
assert response.status_code == 200
payload = response.json()
assert "overall" in payload
assert "checks" in payload
assert "salesforce_client_id" in payload["checks"]
assert "readiness_percent" in payload
assert "missing" in payload
assert "summary" in payload
assert "cli_examples" in payload
assert "powershell" in payload["cli_examples"]
assert payload.get("launch_mode") == "full_commercial"
assert "categories" in payload
assert "blocking" in payload
assert "integration_docs" in payload
@pytest.mark.asyncio
async def test_go_live_gate_returns_403_with_report_when_not_fully_ready(client):
response = await client.get("/api/v1/autonomous-foundation/integrations/go-live-gate")
payload = response.json()
assert "gate" in payload
assert payload["gate"] == "go_live"
assert "launch_allowed" in payload
assert "missing" in payload
assert "checks" in payload
assert "readiness_percent" in payload
assert "summary" in payload
assert "cli_examples" in payload
assert "warnings" in payload
if not payload["launch_allowed"]:
assert response.status_code == 403
assert payload["readiness_percent"] < 100.0
assert isinstance(payload["missing"], list)
assert payload["missing_count"] == len(payload["missing"])
else:
assert response.status_code == 200
assert payload["readiness_percent"] == 100.0
assert payload["missing_count"] == 0