# 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

Нет.
