Release v4928.1.4.2 stable

This commit is contained in:
2026-06-09 22:55:58 +01:00
commit 6445044ac6
280 changed files with 41775 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
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_v485_bounce_ndr_is_ignored_without_task_or_opportunity():
catalog = read("app/action_catalog.py")
decider = read("app/action_decider.py")
analyzer = read("app/analyzer.py")
task_service = read("app/task_service.py")
opportunity = read("app/opportunity_service.py")
assert "IGNORE_BOUNCE" in catalog
assert "Your message" in decider or "couldn" in decider
assert "Recipient" in decider or "recipient" in decider
assert "Office 365" in decider or "office 365" in decider
assert 'action_result.action_code or "").upper() == "IGNORE_BOUNCE"' in analyzer
assert 'return None' in task_service
assert '"IGNORE_BOUNCE"' in opportunity
assert "unknown to address" in opportunity
def test_v485_operations_identity_is_operator_friendly_and_details_are_conditional():
vm = read("app/admin_ui/view_models/operations.py")
ops = read("app/admin_ui/pages/operations.py")
assert "operation_has_useful_details" in vm
assert "Contacto sem identificação" in vm
assert "_looks_like_generic_label" in vm
assert "Contacto Chatwoot #" in vm # legacy comment only, not the returned title
assert "operation_has_useful_details(item)" not in ops
assert 'status_chip_html = "" if status_text == "normal"' in ops
def test_v485_opportunity_cards_use_specific_cta_and_hide_low_value_fields():
opportunities = read("app/admin_ui/pages/opportunities.py")
assert "_opportunity_card_identity" in opportunities
assert "_opportunity_card_next_action" in opportunities
assert "primary_action_label" in opportunities
assert "Ver tarefa pendente" in opportunities
assert "cf-opportunity-card-compact" in opportunities
compact_card = opportunities.split('def _render_opportunity_card', 1)[1].split('def render_opportunities_board_partial', 1)[0]
assert "money_html(opp.get('value_amount'))" not in compact_card
assert "fmt_dt(opp.get('updated_at'))" not in compact_card
assert "pending_chip" not in compact_card