59 lines
2.3 KiB
Python
59 lines
2.3 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_v482_guided_operations_helpers_exist():
|
|
guidance = read("app/admin_ui/guidance.py")
|
|
assert "def fiscal_contact_panel_html" in guidance
|
|
assert "Cliente fiscal e contacto Chatwoot" in guidance
|
|
assert "def readiness_checklist_html" in guidance
|
|
assert "Prontidão" in guidance
|
|
assert "def outbox_operator_message" in guidance
|
|
assert "Motivo provável" in read("app/admin_ui/pages/outbox.py")
|
|
|
|
|
|
def test_v482_operations_and_opportunities_show_fiscal_context_and_blockers():
|
|
ops = read("app/admin_ui/pages/operations.py")
|
|
opps = read("app/admin_ui/pages/opportunities.py")
|
|
vm = read("app/admin_ui/view_models/operations.py")
|
|
assert "work_item_blockers" in ops
|
|
assert "Associações por confirmar" in vm
|
|
assert "Bloqueios atuais" in opps
|
|
assert "Prontidão para documentos" in opps
|
|
assert "Prontidão para envio" in opps
|
|
assert "Associação fiscal" in opps
|
|
|
|
|
|
def test_v482_task_detail_separates_fiscal_customer_and_contact():
|
|
tasks = read("app/admin_ui/pages/tasks.py")
|
|
assert "fiscal_contact_panel_html" in tasks
|
|
assert "Prontidão fiscal da tarefa" in tasks
|
|
assert "Prontidão mínima antes de documento/envio" in tasks
|
|
assert "Corrigir estes dados antes de emitir documento" in tasks
|
|
|
|
|
|
def test_v482_system_health_has_production_state_and_data_quality_metrics():
|
|
service = read("app/operations_service.py")
|
|
system = read("app/admin_ui/pages/system.py")
|
|
assert "open_opportunities_without_fiscal_customer" in service
|
|
assert "active_incomplete_fiscal_customers" in service
|
|
assert "products_missing_external_code" in service
|
|
assert "seconds_since_last_chatwoot_webhook" in service
|
|
assert "Estado para operação" in system
|
|
assert "Oportunidades sem cliente fiscal" in system
|
|
assert "Clientes fiscais incompletos" in system
|
|
assert "Último webhook Chatwoot" in system
|
|
|
|
|
|
def test_v482_documentation_exists():
|
|
doc = read("docs/CLIENTFLOW_V482_PRODUCTION_STABILIZATION.md")
|
|
assert "Production Stabilization" in doc
|
|
assert "Cliente fiscal" in doc
|
|
assert "Outbox em linguagem operacional" in doc
|
|
assert "Sem migração" in doc
|