food-market/tests/e2e/reports/roles-2026-05-26T07-03-30-039Z.md
nns 6098c03e1a docs(e2e): итоговый отчёт 2026-05-26 — 15 сценариев зелёные (124 шага)
Полная регрессия всех сценариев + 6 новых областей этой сессии (employees,
roles, superadmin-console, platform-smtp, auth-password, security-edge).
За день исправлено 4 бага: уволенный сотрудник логинится (P0), конкурентное
проведение приёмки ломает инвариант (critical), refresh не гасится после
ротации (high), change-owner принимал короткий reason (medium). Нереализованный
по ТЗ функционал (отчёты/склад-документы/POS/permission-authz/login-ratelimit)
зафиксирован как Logic gaps.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 12:05:23 +05:00

4.1 KiB
Raw Permalink Blame History

E2E report: roles

Запущен: 2026-05-26T07:03:26.970Z Длительность: 1.6с

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

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

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

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

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

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

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

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

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

Тип Проверка Результат
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)

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

Тип Проверка Результат
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

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

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

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

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

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

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

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

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

✓ Step step08_permission_authz_gap: Permission-based authz не enforced на API — gap

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

Тип Проверка Результат
api Permission-based authz — задокументированный gap (см. Logic gaps)

Summary

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

Critical bugs

Нет.

Logic gaps

  • ТЗ 2.7.2 ожидает 4-6 системных ролей, реально 3 (Phase4b_RolesSimplify): Администратор, Кладовщик, Кассир. Это намеренное упрощение, не багТЗ устарело.
  • ТЗ 2.7.2: permission-based авторизация не enforced — эндпоинты используют только [Authorize(Roles=...)], флаги RolePermissions носят справочный характер для UI. Кастомная роль с ограниченными правами НЕ даёт 403 на запрещённых операциях (помечено «после P0-5»).