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

30 lines
1.1 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_reconciliation_page_has_safe_rebuild_button():
page = read("app/admin_ui/pages/reconciliation.py")
service = read("app/reconciliation_service.py")
assert '/reconciliation/rebuild' in page
assert 'Apagar e correr novamente' in page
assert 'Não apaga clientes, oportunidades nem documentos reais' in page
assert 'reset_generated_reconciliation_items' in service
assert 'opportunity_id IS NULL' in service
assert 'CREATE TABLE {backup_table} AS SELECT * FROM reconciliation_items' in service
def test_rebuild_endpoint_resets_then_syncs_external_candidates():
page = read("app/admin_ui/pages/reconciliation.py")
rebuild_block = page.split('@router.post("/reconciliation/rebuild")', 1)[1].split('@router.post("/reconciliation/cleanup-window")', 1)[0]
assert 'reset_generated_reconciliation_items' in rebuild_block
assert 'apply=True' in rebuild_block
assert 'sync_all_external_reconciliation_candidates' in rebuild_block
assert 'limit=200' in rebuild_block