mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
- API routers, ACA modules, integrations (draft operators) - Docs, landing pages, scripts (launch readiness, scorecard) - Tests and CI workflow updates for Dealix Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""Tests for customer_ops package and API router."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
from httpx import ASGITransport, AsyncClient
|
|
|
|
from api.main import create_app
|
|
from auto_client_acquisition.customer_ops.connector_setup_status import build_connector_status
|
|
from auto_client_acquisition.customer_ops.onboarding_checklist import build_onboarding_checklist
|
|
from auto_client_acquisition.customer_ops.support_ticket_router import route_ticket
|
|
|
|
|
|
def test_onboarding_has_steps_and_approval() -> None:
|
|
d = build_onboarding_checklist("first_10_opportunities")
|
|
assert d["service_id"] == "first_10_opportunities"
|
|
assert isinstance(d["steps_ar"], list)
|
|
assert len(d["steps_ar"]) >= 5
|
|
assert d["approval_required"] is True
|
|
assert d["live_send_default"] is False
|
|
|
|
|
|
def test_connectors_status_lists_whatsapp_gmail() -> None:
|
|
d = build_connector_status()
|
|
ids = [c["id"] for c in d["connectors"]]
|
|
assert "whatsapp" in ids
|
|
assert "gmail" in ids
|
|
|
|
|
|
def test_route_ticket_p0_on_send_keyword() -> None:
|
|
r = route_ticket("حصل إرسال live بالخطأ")
|
|
assert r["priority"] == "P0"
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_customer_ops_endpoints() -> None:
|
|
app = create_app()
|
|
transport = ASGITransport(app=app)
|
|
async with AsyncClient(transport=transport, base_url="http://test") as client:
|
|
r = await client.get("/api/v1/customer-ops/onboarding/checklist")
|
|
assert r.status_code == 200
|
|
assert r.json().get("approval_required") is True
|
|
r2 = await client.get("/api/v1/customer-ops/support/sla")
|
|
assert r2.status_code == 200
|
|
assert "tiers" in r2.json()
|
|
r3 = await client.get("/api/v1/customer-ops/connectors/status")
|
|
assert r3.status_code == 200
|
|
r4 = await client.post("/api/v1/customer-ops/support/route", json={"issue_ar": "خطأ في النظام"})
|
|
assert r4.status_code == 200
|
|
assert r4.json().get("priority") in {"P0", "P1", "P2", "P3"}
|