food-market/tests/e2e/reports/stock-invariant-deep-2026-05-26T06-02-16-375Z.md
nns defe6860fc docs(e2e): зелёные отчёты auth/catalog/stock edge-прогонов
auth-edge 10/10, catalog-edge 12/12, stock-invariant-deep 10/10.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 11:03:48 +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-26T06:02:08.247Z
Длительность: 6.5с
**Итог:** 10 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 10)
## ✓ Step step01_bootstrap: Орг + admin + product (стартовый остаток 0)
Длительность: 1555мс
| Тип | Проверка | Результат |
|---|---|---|
| api | Bootstrap product создан | ✓ 54af3580-d626-42e0-92b1-cc70bb3fb90d |
| 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
Длительность: 969мс
| Тип | Проверка | Результат |
|---|---|---|
| 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
Длительность: 951мс
| Тип | Проверка | Результат |
|---|---|---|
| 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
Длительность: 514мс
| Тип | Проверка | Результат |
|---|---|---|
| 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
Длительность: 527мс
| Тип | Проверка | Результат |
|---|---|---|
| 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
Длительность: 433мс
| Тип | Проверка | Результат |
|---|---|---|
| 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
Длительность: 424мс
| Тип | Проверка | Результат |
|---|---|---|
| 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)
Длительность: 182мс
| Тип | Проверка | Результат |
|---|---|---|
| db | StockMovement содержит как минимум 4 строки | ✓ count=6 |
| db | StockMovement не более 8 строк (нет лишних дублей) | ✓ count=6 |
## ✓ Step step09_concurrent_sales_serialized: Два POST /post одновременно на один остаток — один 200, второй 409
Длительность: 600мс
| Тип | Проверка | Результат |
|---|---|---|
| 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 после всех операций сохраняется
Длительность: 369мс
| Тип | Проверка | Результат |
|---|---|---|
| db | Финальный invariant Stock == Σ Movement | ✓ stock=7 sum=7 |
## Summary
- Passed: 10
- Failed: 0
- Warnings: 0
- Skipped: 0
## Critical bugs
Нет.