FAIL

EVCharge E2E Verify — E2E-CHAT-002

Support Chat — полный цикл Клиент ↔ Диспетчер
🆔 run-verify-e2e-chat-002-20260331-1758 📄 scenarios/smoke-tests/e2e-chat-002-support-chat.md ⏱ Старт: 2026-03-31 15:00 UTC ⏱ Финиш: 2026-03-31 15:05 UTC

⚠️ Критическая находка

V2 FAIL: Кнопка «Связаться с поддержкой» открывает Telegram вместо in-app ChatWidget

Файл: lib/pages/main_page/main_page_widget.dart:1499-1500

Актуально: launchURL('https://t.me/zarady_bot')

Ожидается: Навигация на ChatWidget.routeName

Примечание: ChatWidget существует (lib/chat/chat/chat_widget.dart) и используется в order_details_widget.dart, но не подключён к кнопке поддержки на главной странице.

Ветка Client: develop (подтверждено) — фича реализована, но интеграция отсутствует.

Шаги сценария

# Модуль Блок Статус Детали
0 Bot Service Healthcheck ✅ PASS Bot Service ok: supabase=true, mattermost=true, uptime=159334. DB: нет старых support-каналов.
1 Client Логин клиента ✅ PASS Клиент уже авторизован. Главный экран: Активные заказы, кнопки навигации, «Связаться с поддержкой».
2 Client Открыть ChatWidget ❌ FAIL Кнопка «Связаться с поддержкой» открыла Telegram (t.me/zarady_bot) вместо in-app ChatWidget.
main_page_widget.dart:1500
3 Client Отправить сообщение ⛔ BLOCKED Заблокировано блоком 2: ChatWidget недоступен с главной страницы.
4 Dispatcher Логин диспетчера ✅ PASS Дашборд загружен: Нераспределённые заказы (4), Карта, Обращения клиентов. Кнопка чата в header.
5 Dispatcher ChatPanel открыт ✅ PASS ChatPanel работает. Группы: Маршруты (2 канала), Техподдержка (1 канал), Системные (99+). MessageList: история, разделители «Новое обращение», вложения. WebSocket подключён.
6 Dispatcher Отправить ответ ✅ PASS Диспетчер отправил «E2E тест 31.03» в существующий support-канал. Сообщение мгновенно появилось в MessageList (синий пузырь справа, 15:05).
7 Client Клиент видит ответ ⛔ BLOCKED Заблокировано блоком 2: новое сообщение в поддержку не отправлялось — нет нового support-канала для test client.
8 DB/API Финальная верификация ⛔ BLOCKED Заблокировано: нет нового mm_channel_mapping для test client_id. Полный цикл не завершён.

Скриншоты

Client main screen

01 — Client: Главный экран (авторизован)

V2 FAIL state

03 — Client: FAIL — кнопка поддержки (до нажатия)

Dispatcher dashboard

04 — Dispatcher: Дашборд

Dispatcher ChatPanel

05 — Dispatcher: ChatPanel с группами

Support channel messages

06 — Dispatcher: MessageList support-канала

Dispatcher reply sent

07 — Dispatcher: «E2E тест 31.03» отправлено ✅

DB Чекпоинты

Блок 0 — проверка существующих support-каналов:
SELECT mm_channel_id, mm_channel_name, last_activity_at
FROM mm_channel_mapping
WHERE client_id = '2a0b26a1-3bac-4943-946b-3f6f58db6f53'
  AND channel_type = 'support'
  AND archived_at IS NULL;
→ [] (нет записей)

Ошибки

block-2 — V2 FAIL

Кнопка «Связаться с поддержкой» (main_page_widget.dart:1500) открывает Telegram (https://t.me/zarady_bot) вместо in-app ChatWidget. ChatWidget существует в lib/chat/chat/chat_widget.dart, но не подключён к главной странице. Необходимо заменить launchURL на навигацию к ChatWidget с параметром type=support.

Итог по критериям (V0–V8)

IDКритерийСтатус
V0Bot Service ok✅ PASS
V1Главный экран Client App✅ PASS
V2ChatWidget техподдержки открыт❌ FAIL
V3Сообщение отправлено и видно⛔ BLOCKED
V4Дашборд диспетчера загружен✅ PASS
V5ChatPanel работает, support-канал виден✅ PASS
V6Диспетчер отправил ответ✅ PASS
V7Ответ диспетчера в ChatWidget клиента⛔ BLOCKED
V8mm_channel_mapping + history корректны⛔ BLOCKED