feat: Ipad app production readiness, Colony orchestration, Social posting (#44)
All checks were successful
Production Readiness / backend-contracts (push) Successful in 1m47s
Production Readiness / webos-typecheck (push) Successful in 1m50s
Production Readiness / ipad-parse (push) Successful in 1m34s

#38 Ipad app production readiness, Colony orchestration, Social posting

Co-authored-by: Sayan Datta <sayan@Sayans-MacBook-Air.local>
Reviewed-on: #44
This commit was merged in pull request #44.
This commit is contained in:
2026-05-03 18:30:38 +05:30
parent 59d398abc3
commit eeb684b46c
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)