feat: Ipad app production readiness, Colony orchestration, Social posting
All checks were successful
Production Readiness / backend-contracts (pull_request) Successful in 3m19s
Production Readiness / webos-typecheck (pull_request) Successful in 2m38s
Production Readiness / ipad-parse (pull_request) Successful in 1m44s

This commit is contained in:
Sayan Datta
2026-05-03 18:28:04 +05:30
parent acfc602157
commit 6c93e31741
86 changed files with 20349 additions and 1655 deletions

View File

@@ -108,6 +108,30 @@ def test_canonical_crm_import_upload_requires_authentication() -> None:
assert response.json()["detail"] == "Missing or malformed Authorization header."
def test_canonical_crm_vocabularies_require_authentication() -> None:
client = _build_app(authenticated=False)
response = client.get("/api/crm/vocabularies")
assert response.status_code == 401
assert response.json()["detail"] == "Missing or malformed Authorization header."
def test_canonical_crm_vocabularies_are_backend_owned() -> None:
client = _build_app(authenticated=True)
response = client.get("/api/crm/vocabularies")
assert response.status_code == 200
payload = response.json()["data"]
assert payload["lead_statuses"][0]["value"] == routes_crm_imports.CANONICAL_LEAD_STAGES[0]
assert payload["opportunity_stages"][0]["value"] == routes_crm_imports.CANONICAL_OPPORTUNITY_STAGES[0]
assert {policy["value"] for policy in payload["import_duplicate_policies"]} == set(
routes_crm_imports.IMPORT_DUPLICATE_POLICIES
)
assert payload["dream_weaver_room_types"][0]["icon"]
def test_canonical_crm_contacts_can_be_read_when_authenticated(monkeypatch) -> None:
client = _build_app(authenticated=True)