food-market/tests/e2e/reports/roles-2026-05-26T21-41-37-170Z.md
nns 688be30226 test(e2e): roles step08 проверяет permission-enforcement + rate-limit конфигурируем
- roles.steps.ts step08: было «задокументированный gap», стало реальная
  проверка — кастомная роль без ProductsEdit → 403 на PUT товара, GET → 200.
  Сценарий roles зелёный 8/8.
- RateLimiting:* конфиг (Enabled/PerMinute/PerHour): тесты с общим loopback-IP
  поднимают/выключают лимит, чтобы повторные логины не упирались в 429.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 02:41:52 +05:00

3.9 KiB
Raw Blame History

E2E report: roles

Запущен: 2026-05-26T21:41:28.548Z Длительность: 5.4с

Итог: 8 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 8)

✓ Step step01_bootstrap: Орг A + логин админа

Длительность: 3002мс

Тип Проверка Результат
api Орг A + админ готовы

✓ Step step02_system_roles_exist: Системные роли (IsSystem=true) созданы — минимум 4

Длительность: 216мс

Тип Проверка Результат
api Системные роли (ядро Администратор/Кладовщик/Кассир) присутствуют, не удаляемы ✓ system=[Администратор, Кладовщик, Кассир]

✓ Step step03_create_custom_role: Создание кастомной роли с правами → права сохранены

Длительность: 194мс

Тип Проверка Результат
api Создание кастомной роли → 200/201 ✓ status=201
api Права сохранены (productsView=true, productsEdit=false) ✓ {"productsView":true,"productsEdit":false,"productsDelete":false,"productGroupsManage":false,"priceTypesManage":false,"unitsManage":false,"suppliesView":true,"suppliesEdit":false,"suppliesPost":false,

✓ Step step04_update_permissions: Изменение прав роли применяется (PUT)

Длительность: 180мс

Тип Проверка Результат
api PUT прав роли → 200/204 ✓ status=204
api Новое право productsEdit=true применилось ✓ {"productsView":true,"productsEdit":true,"productsDelete":false,"productGroupsManage":false,"priceTypesManage":false,"unitsManage":false,"suppliesView":true,"suppliesEdit":false,"suppliesPost":false,"

✓ Step step05_delete_system_role_409: Удаление системной роли → 409

Длительность: 56мс

Тип Проверка Результат
api Системная роль найдена ✓ Администратор
api DELETE системной роли → 409 ✓ status=409

✓ Step step06_delete_role_in_use_409: Удаление роли, занятой сотрудником → 409

Длительность: 447мс

Тип Проверка Результат
api Сотрудник с кастомной ролью создан ✓ status=200
api DELETE занятой роли → 409 ✓ status=409

✓ Step step07_delete_unused_role_ok: Удаление неиспользуемой роли → 204/200

Длительность: 61мс

Тип Проверка Результат
api Неиспользуемая роль создана
api DELETE неиспользуемой роли → 200/204 ✓ status=204

✓ Step step08_permission_authz_enforced: Permission-based authz enforced: роль без ProductsEdit → 403 на PUT товара

Длительность: 1207мс

Тип Проверка Результат
api Роль «только просмотр» создана ✓ status=201
api Сотрудник с логином и ролью создан ✓ status=200
api PUT товара без ProductsEdit → 403 ✓ status=403
api GET товаров с ProductsView → 200 ✓ status=200

Summary

  • Passed: 8
  • Failed: 0
  • Warnings: 0
  • Skipped: 0

Critical bugs

Нет.

Logic gaps

  • ТЗ 2.7.2 ожидает 4-6 системных ролей, реально 3 (Phase4b_RolesSimplify): Администратор, Кладовщик, Кассир. Это намеренное упрощение, не багТЗ устарело.