Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6.6 KiB
6.6 KiB
Приёмка по критериям ТЗ (раздел 9)
Состояние на 09.10.2026. «Автотест» — сценарий в apps/api/src/*.int.test.ts, проверяется командой
pnpm test. Автотесты работают с заглушкой Telegram, поэтому всё, что касается настоящего бота и
телефона, нужно один раз пройти руками на боевом стенде.
| № | Критерий | Автотест | Руками |
|---|---|---|---|
| 1 | Объявление под фильтр приходит в Telegram всем нужным агентам; время замерено | «первый проход наполняет базу…», «личный фильтр: уведомление получает только его владелец» | Не пройдено с настоящим ботом и привязанным агентом. Замер задержки один: 41 с (docs/PARSER.md); медиана за сутки — в разделе «Парсер» |
| 2 | Одновременное «Беру»: лид у одного, второй видит «Уже взят» | «при одновременном нажатии лид получает один агент…» | Проверить двумя телефонами |
| 3 | 24 часа без смены статуса: предупреждение, возврат в пул, уведомление о потере | «через 24 часа без смены статуса лид возвращается в пул…» | — |
| 4 | Чёрный список и порог N не создают лид в режиме «только собственники» | «„только собственники“: метка агентства, порог N и чёрный список…» | — |
| 5 | Агент не видит чужие лиды при выключенной видимости и видит при включённой | «видимость: агент не видит чужие лиды…» | — |
| 6 | Solo не видит аналитику и базу; в Team нельзя добавить участника сверх лимита (с 09.10.2026 лимиты: Team 10, Agency 35) | «…Solo базы и аналитики не видит», «в Team нельзя добавить одиннадцатого участника, даже одновременно» | — |
| 7 | Руководитель изменил воронку — канбан, аналитика и карточки показывают новые статусы | «руководитель добавляет, переименовывает, переставляет и удаляет промежуточные статусы» | Пройдено в браузере |
| 8 | Сделка без комиссии невозможна; счёт по «%» совпадает с ручным расчётом | «отказ требует причину, сделка — комиссию…», «счёт 1-го числа совпадает с ручным расчётом…» | Пройдено в браузере на демо-компании: (4200 + 1 540 000 / 385 + 2600) × 7 % = 756 $ |
| 9 | Смена тарифа применяется только со следующего месяца | «из кабинета применяется только со следующего месяца» | Пройдено в браузере |
| 10 | 16-й день просрочки: уведомления прекращаются, CRM на чтение; после оплаты доступ возвращается | «16-й день просрочки…», «…компания без доступа лидов не получает» | — |
| 11 | Суперадмин меняет дату окончания и отправляет сообщение выбранной компании | «просрочка: … суперадмин возвращает доступ», «сообщения в Telegram: всем, компании, руководителям, одному пользователю; журнал» | Отправка проверена в браузере; доставка в настоящий Telegram — нет: в тестовой базе у пользователей компаний Telegram не привязан |
| 12 | Снятое объявление получает отметку и дату; повторное приходит новым лидом со ссылкой на прошлый | «раз в сутки объект из CRM проверяется…», «снятое объявление опубликовано снова…», «тот же объект под новым номером…» | Блоки «Снято» и «Уже был в работе» в браузере не смотрели |
| 13 | Все экраны и сообщения бота на трёх языках | — | Экраны переключаются. Армянские тексты не вычитаны носителем языка |
Общие требования
| Требование | Состояние |
|---|---|
| Один бэкенд для веб-кабинета и Mini App, реляционная база, очередь уведомлений | Есть |
| Лимиты Telegram и повтор при ошибке | Есть, автотест «при ошибке отправки сообщение повторяется…» |
| Пароли в виде хеша, проверка роли и компании на сервере | Есть |
| HTTPS | Появится при выкладке: сертификат выпускает Nginx Proxy Manager |
| Ежедневная резервная копия | Настроена в боевой сборке, проверена локально |
| Chrome и Safari, Mini App на iOS и Android | Проверено только в Chrome, включая экран телефона. Safari и настоящий Telegram на iOS и Android — нет |
Mini App
Проверено в Chrome на экране 390 × 844 с настоящими подписанными данными Telegram: вход без пароля, мастер настройки, лента, карточка, «Беру», смена статуса, фильтры, подписка. В настоящем Telegram не открывалось: Telegram открывает Mini App только по https-адресу, а он появится после выкладки.