Тестирование системы
Раздел описывает полный сквозной тест CRM RMS глазами клиента (через фронтенд), проведённый 16.07.2026, и служит методичкой для повторных прогонов: что тестировать, в каком порядке, что должно происходить и что сейчас работает не так.
Структура раздела
| Страница | Что внутри |
|---|---|
| Полный флоу-тест | Поэтапный сценарий: компании → контакты → проект → команда → смета → документы → логистика → задачи → чаты. По каждому шагу: как воспроизвести, ожидаемый результат, фактический результат. |
| Генерация документов | Детальный разбор PDF-документов (смета, счёт, акт, договор): какие данные и откуда попадают в документ, что сломано, что нужно доработать. |
| Права и роли | Что реально видит каждая роль на фронте, как устроена проверка прав, ограничения текущих seed-пользователей. |
| Реестр дефектов | Сводная таблица всех найденных багов и доработок с приоритетами. |
Тестовый стенд
- Фронтенд:
rms_crm_front,pnpm dev(Vite),VITE_API_BASE_URL=http://localhost:8088/api/v1. - Бэкенд:
crm_rms, Docker Compose (compose.yaml+compose.local.yaml), gateway на:8088. - БД: staging PostgreSQL (
crm_rms_staging). Перед прогоном обязательно накатить seed:
bash
cd crm_rms
docker compose -f compose.yaml -f compose.local.yaml run --rm seedSeed идемпотентен, создаёт пользователей, проекты [SEED] …, оборудование, справочники (см. seed.md).
Учётные записи для теста
| Пароль | Кем тестировать | |
|---|---|---|
admin@seed.rms | Admin123! | Администратор: полный доступ, админ-разделы |
manager@seed.rms | Manager123! | Менеджер проекта: основной сценарий ведения проекта |
logist@seed.rms | Logist123! | Логист: заявки от менеджеров, операции |
engineer@seed.rms | Engineer123! | Инженер: задачи, чаты |
accountant@seed.rms | Accountant123! | Бухгалтер: бюджет, документы |
executor@seed.rms | Executor123! | Соисполнитель: только свои задачи |
Роли seed-пользователей
Seed выдаёт реальные системные роли: logist/executor — employee, инженер — engineer, бухгалтер — accountant, юрист — lawyer. Функции logistician/engineer/accountant/lawyer сохраняются в global_function. Повторный запуск синхронизирует user_roles и не возвращает этим пользователям роль manager.
Сводка результата прогона 16.07.2026
Что работает end-to-end:
- Логин/логаут, восстановление контекста, редиректы.
- Компании: создание с автозаполнением по ИНН (DaData), карточка, банковские счета по БИК, печать карточки в PDF.
- Контакты: создание из карточки компании, привязка, карточка контакта.
- Проекты: создание с клиентом/контактом/локацией/НДС, карточка, вкладки.
- Команда проекта: добавление участников с ролями (со статусом «Ожидает»).
- Смета: статьи затрат (через API), итоги, НДС «включён 22%» считается корректно (770 000 → НДС 138 852,46).
- Генерация документов: смета/акт/договор — корректные PDF; нумерация по типам работает.
- Оборудование проекта: подбор из каталога, цены, дефицит, создание заявки логистам.
- Задачи: создание, канбан, статусы (Планируется → В работе → Готово), учёт времени, чат задачи.
- Чаты: личные, чат проекта (создаётся автоматически), сообщения.
Что сломано или блокирует флоу (детали в реестре):
- PDF счёта полностью нечитаем — кириллица не рендерится (заглушка
SimplePDFGenerator). - Добавление статьи затрат из UI падает с 400 — фронт шлёт поле
name, бэкенд его не знает. - Настройки сметы не сохраняются (400) — фронт шлёт
planned_budget, бэкенд ждётmarkup_percent/vat_display_mode/…. - Вкладка «Документы» проекта — мок: реальные сгенерированные документы там не видны.
- Логистическая операция из заявки не создаётся ни одним из способов («Перемещение» блокируется автопланом, «Покупка» — валидацией локации «Закупка»).
- Типа документа «дополнительное соглашение» не существует ни на бэке, ни на фронте.