Files
yuriandClaude Opus 5.5 9749da5ae7 Lead Radar: исходный код
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 23:11:04 +04:00

6.6 KiB
Raw Permalink Blame History

Приёмка по критериям ТЗ (раздел 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-адресу, а он появится после выкладки.