Release v4928.1.4.2 stable
This commit is contained in:
53
tests/test_v46_chatwoot_workflow.py
Normal file
53
tests/test_v46_chatwoot_workflow.py
Normal file
@@ -0,0 +1,53 @@
|
||||
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_review_manually_and_remove_from_list_are_operational_pending_actions():
|
||||
task_service = read("app/task_service.py")
|
||||
action_catalog = read("app/action_catalog.py")
|
||||
|
||||
assert "def _initial_task_status" in task_service
|
||||
assert 'code in {"IGNORE_SPAM", "NO_ACTION"}' in task_service
|
||||
assert 'code in {"REVIEW_MANUALLY", "REMOVE_FROM_LIST"}' in task_service
|
||||
assert '"REVIEW_MANUALLY": {\n "route": "rever",\n "action_required": True' in action_catalog
|
||||
assert '"REMOVE_FROM_LIST": {\n "route": "marketing",\n "action_required": True' in action_catalog
|
||||
|
||||
|
||||
def test_reclassify_review_stays_pending_and_spam_is_skipped():
|
||||
task_service = read("app/task_service.py")
|
||||
assert 'new_status = "skipped" if new_action_code in {"IGNORE_SPAM", "NO_ACTION"} else "pending"' in task_service
|
||||
assert '"REMOVE_FROM_LIST": ("marketing", "Remover contacto da lista")' in task_service
|
||||
|
||||
|
||||
def test_operations_work_items_include_chatwoot_context_and_url():
|
||||
operations = read("app/operations_service.py")
|
||||
operations_page = read("app/admin_ui/pages/operations.py")
|
||||
|
||||
assert "build_chatwoot_conversation_url" in operations
|
||||
assert "chatwoot_url" in operations
|
||||
assert "t.source_system" in operations
|
||||
assert "t.conversation_id" in operations
|
||||
assert "Chatwoot ↗" in operations_page
|
||||
assert "O Chatwoot é a inbox" in operations_page
|
||||
|
||||
|
||||
def test_communications_not_primary_navigation_but_routes_stay_available():
|
||||
navigation = read("app/admin_ui/navigation.py")
|
||||
communications = read("app/admin_ui/pages/communications.py")
|
||||
operations = read("app/admin_ui/pages/operations.py")
|
||||
assert '("communications", "/communications", "bi-envelope", "Comunicações")' not in navigation
|
||||
assert '@router.get("/communications"' in communications
|
||||
assert 'Chatwoot continua a ser a inbox' in communications or 'O Chatwoot é a inbox' in operations
|
||||
|
||||
|
||||
def test_reopen_chatwoot_review_tasks_script_exists():
|
||||
script = read("scripts/reopen_chatwoot_review_tasks.py")
|
||||
assert "REVIEW_MANUALLY" in script
|
||||
assert "REMOVE_FROM_LIST" in script
|
||||
assert "--dry-run" in script
|
||||
assert "status = 'pending'" in script
|
||||
Reference in New Issue
Block a user