Перейти до основного вмісту

Тестування

Команди

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 подій.