50 lines
1.9 KiB
Python
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
|