Перейти к основному содержимому

Тестирование

Команды

npm run typecheck
npm test

Для тестов, которые работают с БД, сначала подготовьте тестовую базу:

npm run test:db:setup

Регрессионный тест изоляции отделов

tests/department-isolation.test.ts — регрессионный набор для ADR-002.

Он создаёт два отдела с отдельными пользователями, namespaces, базами знаний, документами, чанками, approvals, разговорами, профилями сотрудников, задачами агентов и трейсами. Дальше проверяет, что пользователь отдела A не может добраться до данных отдела B через:

  • REST-эндпоинты списков;
  • фильтры запроса departmentId;
  • REST-эндпоинты деталей;
  • REST-эндпоинты мутаций;
  • данные аналитической панели;
  • векторный поиск, поиск по вопросам и RAG по ключевым словам;
  • WebSocket-подписки и устаревшие namespace-бродкасты.

Когда добавляете эндпоинт уровня отдела — сначала допишите сюда тест, а не надейтесь на ручную проверку. Тест должен доказывать обе стороны:

  • не-глобальные пользователи видят данные только в рамках своего эффективного отдела;
  • глобальные пользователи сохраняют межотдельский доступ там, где это нужно продукту.

Точечные тесты безопасности

  • tests/auth.test.ts — удаление роли при регистрации, конфигурация срока JWT, ошибки аутентификации.
  • tests/cors.test.ts — поведение ALLOWED_ORIGINS с точным match по origin.
  • tests/errorHandler.test.ts — структурированные конверты ошибок провайдера и приложения.
  • tests/department-scope-plugin.test.ts — декоратор запроса для employee и global scope.
  • tests/websocket.test.ts — аутентификация через JWT в первом сообщении и доставка событий agent task.