food-market/tests/e2e/reports/stock-invariant-deep-2026-05-26T07-02-45-558Z.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

116 lines
4.1 KiB
Markdown
Raw 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: stock-invariant-deep
Запущен: 2026-05-26T07:02:38.469Z
Длительность: 5.7с
**Итог:** 10 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 10)
## ✓ Step step01_bootstrap: Орг + admin + product (стартовый остаток 0)
Длительность: 1829мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Bootstrap product создан | ✓ e873c3b8-a3dd-4b32-a17a-91a09364f54d |
| db | Stock.Quantity == 0 | ✓ actual=0 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=0 sum=0 |
## ✓ Step step02_supply_a_qty_20: Supply A qty=20 → invariant stock=20, Σ movement=20
Длительность: 463мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Supply A qty=20 проведена | ✓ |
| db | Stock.Quantity == 20 | ✓ actual=20 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=20 sum=20 |
## ✓ Step step03_sale_a_qty_5: RetailSale A qty=5 → invariant stock=15, Σ movement=15
Длительность: 442мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Sale A qty=5 проведена | ✓ |
| db | Stock.Quantity == 15 | ✓ actual=15 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=15 sum=15 |
## ✓ Step step04_supply_b_qty_10: Supply B qty=10 → invariant stock=25, Σ movement=25
Длительность: 452мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Supply B qty=10 проведена | ✓ |
| db | Stock.Quantity == 25 | ✓ actual=25 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=25 sum=25 |
## ✓ Step step05_sale_b_qty_8: RetailSale B qty=8 → invariant stock=17, Σ movement=17
Длительность: 455мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Sale B qty=8 проведена | ✓ |
| db | Stock.Quantity == 17 | ✓ actual=17 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=17 sum=17 |
## ✓ Step step06_unpost_sale_a: Unpost RetailSale A → invariant stock=22, Σ movement=22
Длительность: 447мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Unpost Sale A → 200/204 | ✓ status=204 |
| db | Stock.Quantity == 22 | ✓ actual=22 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=22 sum=22 |
## ✓ Step step07_repost_sale_a: Re-post RetailSale A → invariant stock=17, Σ movement=17
Длительность: 447мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Re-post Sale A → 200/204 | ✓ status=204 |
| db | Stock.Quantity == 17 | ✓ actual=17 |
| db | Stock.Quantity == Σ StockMovement (invariant) | ✓ stock=17 sum=17 |
## ✓ Step step08_movement_count_correct: Всего StockMovement по продукту = 6 строк (2 supply + 2 sale + reverse sale + repost sale)
Длительность: 202мс
| Тип | Проверка | Результат |
|---|---|---|
| db | StockMovement содержит как минимум 4 строки | ✓ count=6 |
| db | StockMovement не более 8 строк (нет лишних дублей) | ✓ count=6 |
## ✓ Step step09_concurrent_sales_serialized: Два POST /post одновременно на один остаток — один 200, второй 409
Длительность: 584мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Два Draft созданы | ✓ |
| api | Ровно один post 2xx, второй 4xx (5xx) | ✓ statuses=204,409 |
| db | Stock >= 0 (не минус из-за гонки) | ✓ stock=7 |
| db | Stock == Σ Movement после гонки | ✓ stock=7 sum=7 |
## ✓ Step step10_final_invariant: Финальный invariant после всех операций сохраняется
Длительность: 396мс
| Тип | Проверка | Результат |
|---|---|---|
| db | Финальный invariant Stock == Σ Movement | ✓ stock=7 sum=7 |
## Summary
- Passed: 10
- Failed: 0
- Warnings: 0
- Skipped: 0
## Critical bugs
Нет.