food-market/tests/e2e/reports/employees-2026-05-26T07-03-24-714Z.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

111 lines
4.1 KiB
Markdown
Raw Permalink 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: employees
Запущен: 2026-05-26T07:03:19.659Z
Длительность: 3.6с
**Итог:** 10 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 10)
## ✓ Step step01_bootstrap: Орг A + логин админа + выбор не-админской роли
Длительность: 1197мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Орг A + не-админская роль найдены | ✓ role=Кладовщик |
## ✓ Step step02_create_without_account: Создание сотрудника без учётки (createAccount=false) → UserId=null
Длительность: 27мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Создан без учётки → 200/201 | ✓ status=200 |
| api | UserId = null | ✓ userId=null |
| api | generatedPassword отсутствует | ✓ |
## ✓ Step step03_create_with_account: Создание сотрудника с учёткой → temp password в ответе, User создан
Длительность: 351мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Создан с учёткой → 200/201 | ✓ status=200 |
| api | Temp password возвращён один раз | ✓ |
| api | UserId присвоен | ✓ userId=75ef2110-7770-4256-9b7d-33be90b832de |
## ✓ Step step04_email_required: createAccount=true без email → 400
Длительность: 13мс
| Тип | Проверка | Результат |
|---|---|---|
| api | createAccount=true без email → 400 | ✓ status=400 |
## ✓ Step step05_duplicate_email: Дубль email при createAccount → 4xx
Длительность: 17мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Дубль email → 4xx (rejected) | ✓ status=400 |
## ✓ Step step06_account_can_login: Новый сотрудник логинится временным паролем → 200
Длительность: 282мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Логин новым сотрудником → 200 | ✓ status=200 |
## ✓ Step step07_fire_blocks_login: Увольнение (DELETE) гасит логин: повторный login и refresh → 4xx
Длительность: 581мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Увольнение (DELETE) → 204 | ✓ status=204 |
| db | Employee.IsActive=false (уволен) | ✓ IsActive=f |
| db | User.IsActive=false (логин погашен) | ✓ User.IsActive=f |
| api | Повторный login уволенного → 4xx | ✓ status=400 |
| api | Refresh уволенного → 4xx | ✓ status=400 |
## ✓ Step step08_two_step_delete: Второй DELETE → soft-delete (IsDeleted), третий → 409
Длительность: 262мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Второй DELETE → 204 (soft-delete) | ✓ status=204 |
| db | Employee.IsDeleted=true | ✓ IsDeleted=t |
| api | Третий DELETE → 409 (уже удалён) | ✓ status=409 |
## ✓ Step step09_owner_self_protected: DELETE главного администратора (он же self) → 403
Длительность: 101мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Главный администратор найден в списке | ✓ owner=1c6f6673-4a67-464e-bf3e-00f71cdc8977 |
| api | DELETE главного администратора (он же self) → 403 | ✓ status=403 |
## ✓ Step step10_tenant_isolation: Админ орг A не видит и не удаляет сотрудника орг B → 404
Длительность: 769мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Сотрудник в орг B создан | ✓ |
| api | GET чужого сотрудника (орг B) из орг A → 404 | ✓ status=404 |
| api | DELETE чужого сотрудника → 404 | ✓ status=404 |
## Summary
- Passed: 10
- Failed: 0
- Warnings: 0
- Skipped: 0
## Critical bugs
Нет.