Тестування
Команди
npm run typecheck
npm test
Для тестів з базою даних спочатку підготуйте тестову БД:
npm run test:db:setup
Тестовий набір ізоляції відділу
tests/department-isolation.test.ts — регресійний тестовий набір для ADR-002.
Він створює два відділи з окремими користувачами, просторами імен, базами знань, документами, чанками, схваленнями, розмовами, профілями співробітників, agent tasks і trace-записами. Потім перевіряє, що користувач відділу A не має доступу до даних відділу B через:
- REST-ендпоінти списку;
- фільтр запиту
departmentId; - REST-ендпоінти деталей;
- REST-ендпоінти мутацій;
- дані analytics-дашборду;
- RAG-пошук: векторний, hybrid-векторний і keyword-пошук;
- WebSocket-підписки та legacy namespace-бродкасти.
Коли додаєте ендпоінт з scope-обмеженням по відділу, додайте його до цього набору, перш ніж покладатися на ручну перевірку. Тест має підтвердити обидва боки:
- неглобальні користувачі бачать тільки дані у своєму ефективному відділі;
- глобальні користувачі зберігають намірений крос-відділовий доступ там, де продукт цього вимагає.
Точкові тести безпеки
tests/auth.test.ts— очищення ролі при реєстрації, конфігурація JWT expiry, помилки автентифікації.tests/cors.test.ts— точна поведінкаALLOWED_ORIGINSпо origin.tests/errorHandler.test.ts— структуровані envelopes для помилок провайдерів і додатка.tests/department-scope-plugin.test.ts— декорування запиту для employee та global scope.tests/websocket.test.ts— JWT-автентифікація у першому повідомленні та доставка agent-task подій.