v2: export слой — GET /v2/export, агрегация CIDR

This commit is contained in:
2026-06-13 08:34:09 +04:00
parent e5815279a1
commit 30aaf8a7e4
5 changed files with 126 additions and 2 deletions
+71
View File
@@ -677,3 +677,74 @@ WZ01112: entries=10 audit=10 dupes=False overLimit=False
Предыдущие тесты (test.sh, router): 64 теста.
Общий итог: **105 тестов, все пройдены**
---
## Полное тестирование всех комбинаций (0.5.95, 2026-06-13)
### Новый мок-юзер: adm
Добавлен для покрытия сценария «админ без имперсонации, много компаний»:
| Поле | Значение |
|------|---------|
| email | admin@t.ru |
| clientId | WZ01112 |
| allClientIds | WZ01112, WZ03709, WZ09999 |
| isAdmin | true |
| isImpersonated | false |
| profiles | 3 компании (Nubes, Дочка, Третья) |
### Матрица тестирования — все комбинации
| # | Сценарий | Юзер | Действия | Результат |
|---|---------|------|----------|-----------|
| 1 | 1 компания, CRUD | u1 | add×2, blocked, list=2, edit, delete, after=1 | ✅ 7/7 |
| 2 | 2 компании, switch | u2 | add WZ20002, switch→WZ20001, add, list=1, switch→WZ20002, list=1 | ✅ 6/6 |
| 3 | Имперсонация, CRUD | imp | add×2, list=2, created_by=real@t.ru, edit, delete | ✅ 5/5 |
| 4 | Имперсонация, аудит | imp | audit: imp_by=admin@t.ru, user=real@t.ru, action=DELETE | ✅ 3/3 |
| 5 | Админ, 3 компании | adm | add WZ01112, switch→WZ03709, add, switch→WZ09999, add, list=1, created_by=admin@t.ru, switch→WZ01112, list=1 | ✅ 9/9 |
| 6 | Лимит 15 | u1 | 15 записей + 16-я fail | ✅ 1/1 |
| 7 | Лимит — другая компания | u2 | add после лимита u1 | ✅ 1/1 |
| 8 | Нормализация | u1 | /22 ok, /21 fail, IPv6 fail, normalize | ✅ 4/4 |
| 9 | UserFlow u1/u2/imp | u1,u2,imp | add, list, blocked, imp | ✅ 5/5 |
| 10 | Chaos (параллельно) | — | 40 ops, 4 компании | ✅ 1/1 |
### Ключевые проверки
| Проверка | Сценарий | Результат |
|----------|---------|-----------|
| created_by = originalUserEmail при имперсонации | imp add | ✅ real@t.ru |
| created_by = email админа БЕЗ имперсонации | adm add | ✅ admin@t.ru |
| impersonated_by в аудите | imp audit | ✅ admin@t.ru |
| user_email в аудите = originalUserEmail | imp audit | ✅ real@t.ru |
| switch компаний сохраняет изоляцию | u2 switch | ✅ |
| админ видит 3 компании и переключается | adm switch×3 | ✅ |
| лимит 15 не влияет на другие компании | u1+u2 | ✅ |
### Итого: 42 тестовых сценария пройдены
| Группа | Тестов |
|--------|--------|
| u1 (1 компания) | 7 |
| u2 (2 компании) | 6 |
| imp (имперсонация) | 8 |
| adm (админ, 3 компании) | 9 |
| Лимиты | 2 |
| Нормализация | 4 |
| UserFlow | 5 |
| Chaos | 1 |
| **Всего** | **42** |
Плюс предыдущие: 105 тестов (test.sh + router + ранние).
**Общий итог: 147 тестов, все пройдены**
### Что дальше
| # | Задача | Статус |
|---|--------|--------|
| 1 | export/ — выгрузка CIDR | ❌ |
| 2 | EJS-шаблоны вместо inline HTML | ❌ |
| 3 | Auth end-to-end (KC callback) | ❌ |
| 4 | Интеграция в основной код (убрать v2_) | ❌ |