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

94 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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): Администратор, Кладовщик, Кассир. Это намеренное упрощение, не багТЗ устарело.