food-market/tests/e2e/reports/stock-concurrency-2026-05-26T06-28-54-456Z.md
nns f2f64646b1 docs(e2e): финальный системный отчёт 2026-05-26 — все 9 сценариев зелёные
Сводный отчёт systemic-2026-05-26.md + зелёные прогоны всех сценариев
(82 шага, 0 падений). За сессию исправлено: refresh-rotation (TokenId +
zero reuse-leeway), сериализуемое проведение приёмки против lost update,
MoySklad BaseUrl в конфиг. Покрыты впервые: конкурентность приёмок,
дашбордная выручка, импорт MoySklad (идемпотентность/маппинг). Зафиксированы
gap'ы по нереализованным отчётам (профит/ABC/экспорт, ТЗ 2.12).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 11:30:46 +05:00

2.4 KiB
Raw Blame History

E2E report: stock-concurrency

Запущен: 2026-05-26T06:28:48.064Z Длительность: 4.9с

Итог: 4 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 4)

✓ Step step01_bootstrap: Орг + товар + стартовая приёмка qty=5 @100 (Stock=5, Cost=100)

Длительность: 2198мс

Тип Проверка Результат
api Bootstrap product создан ✓ 1903eb84-9c8c-4335-9439-6d8fa6bd2102
db Stock.Quantity == Σ StockMovement (invariant) ✓ stock=5 sum=5
db Стартовый Stock == 5 ✓ stock=5
db Стартовый Cost == 100 ✓ cost=100

✓ Step step02_concurrent_distinct_supplies: Две разные приёмки (10@100 и 10@120) одновременно → Stock=25, инвариант, Cost=108

Длительность: 903мс

Тип Проверка Результат
api Две приёмки-черновика созданы
db Stock.Quantity == Σ StockMovement (invariant) ✓ stock=25 sum=25
db Stock == 25 (5 + 10 + 10, без потери приёмки) ✓ stock=25 sum=25 statuses=204,409
db Cost == 108 (взвешенное среднее по всем трём приёмкам) ✓ cost=108

✓ Step step03_double_post_same_supply: Двойное проведение ОДНОЙ приёмки (7@100) одновременно → применяется один раз

Длительность: 1378мс

Тип Проверка Результат
api Приёмка-черновик 7@100 создана
api Не более одного успешного проведения ✓ statuses=204,409
db Stock вырос ровно на 7 (приёмка применена один раз) ✓ before=25 after=32
db Добавлено ровно одно StockMovement ✓ +1 movements
db Stock.Quantity == Σ StockMovement (invariant) ✓ stock=32 sum=32

✓ Step step04_final_invariant: Финальный инвариант Stock == Σ StockMovement

Длительность: 441мс

Тип Проверка Результат
db Финальный invariant Stock == Σ StockMovement ✓ stock=32 sum=32

Summary

  • Passed: 4
  • Failed: 0
  • Warnings: 0
  • Skipped: 0

Critical bugs

Нет.