Тестирование
Команды
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.