Files
clientflow_backend/tests/test_v45_operational_core.py
2026-06-09 22:55:58 +01:00

50 lines
1.9 KiB
Python

from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def read(path: str) -> str:
return (ROOT / path).read_text(encoding="utf-8")
def test_v45_communications_service_and_schema_exist():
service = read("app/communication_service.py")
db = read("app/db.py")
migration = read("migrations/006_v45_operational_core.sql")
assert "CREATE TABLE IF NOT EXISTS communications" in service
assert "CREATE TABLE IF NOT EXISTS timeline_events" in service
assert "communication_id" in service
assert "ensure_communication_schema" in db
assert "communications" in migration
assert "timeline_events" in migration
def test_v45_admin_ui_routes_are_registered():
communications = read("app/admin_ui/pages/communications.py")
operations = read("app/admin_ui/pages/operations.py")
dashboard = read("app/admin_ui/pages/dashboard.py")
assert '@router.get("/communications"' in communications
assert '@router.get("/comunicacoes"' in communications
assert '@router.get("/communications/{communication_id}"' in communications
assert 'Centro de trabalho' in operations
assert 'Dashboard = visibilidade' in dashboard
assert 'Inbox classificada' in communications
def test_v45_operations_surface_work_items():
operations = read("app/operations_service.py")
operations_page = read("app/admin_ui/pages/operations.py")
assert "work_items" in operations
assert "recent_communications" in operations
assert "communications_open" in operations
assert "Fila operacional priorizada" in operations_page
def test_v45_opportunity_has_communication_and_timeline_sections():
opportunities = read("app/admin_ui/pages/opportunities.py")
assert 'href="#comunicacoes"' in opportunities
assert 'id="comunicacoes"' in opportunities
assert 'id="timeline"' in opportunities
assert 'list_communications_for_opportunity' in opportunities