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