# E2E report: stage-reports

Запущен: 2026-05-29T12:35:08.144Z
Длительность: 3.7с

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

## ✓ Step rep01_setup: 1 org + продукт + Enter 100@30 + RetailSale 10@500 + Loss 5@30 → известные числа

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

| Тип | Проверка | Результат |
|---|---|---|
| api | Operations applied (enter+sale+loss) | ✓ qty=100→90→85 |

## ✓ Step rep02_sales_report: GET /api/reports/sales — revenue = 10×500 = 5000, transactions ≥ 1

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

| Тип | Проверка | Результат |
|---|---|---|
| api | GET /reports/sales → 200 | ✓ 200 |
| api | Σ revenue = 5000 (10 × 500) | ✓ revenue=5000, rows=1 |
| api | transactions ≥ 1 | ✓ tx=1 |

## ✓ Step rep03_stock_report: GET /api/reports/stock — текущий остаток = 100 − 10 − 5 = 85

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

| Тип | Проверка | Результат |
|---|---|---|
| api | GET /reports/stock → 200 | ✓ 200 |
| api | Текущий остаток = 85 (100−10−5) | ✓ qty=85 |

## ✓ Step rep04_profit_report: GET /api/reports/profit — revenue=5000, cost=10×30=300, прибыль=4700

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

| Тип | Проверка | Результат |
|---|---|---|
| api | GET /reports/profit → 200 | ✓ 200 |
| api | revenue=5000, cost=10×30=300, прибыль=4700 | ✓ revenue=5000 cost=300 |

## ✓ Step rep05_abc_report: GET /api/reports/abc — наш единственный товар = class A, rank=1

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

| Тип | Проверка | Результат |
|---|---|---|
| api | GET /reports/abc → 200 | ✓ 200 |
| api | Наш товар = class A, rank=1 | ✓ class=A rank=1 |

## ✓ Step rep06_export_csv_xlsx: GET .../export?format=csv → text/csv;  ?format=xlsx → xlsx-mime

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

| Тип | Проверка | Результат |
|---|---|---|
| api | CSV export → 200 + text/csv ИЛИ application/octet-stream | ✓ 200 ct=text/csv; charset=utf-8 |
| api | XLSX export → 200 + spreadsheet mime | ✓ 200 ct=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |

## ✓ Step rep07_empty_period: from=to=далёкая дата → пустой массив

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

| Тип | Проверка | Результат |
|---|---|---|
| api | Пустой период → 200, пустой массив или нулевые суммы | ✓ 200 len=0 |
| api | Пустой profit период → 200, нет NaN | ✓ 200 len=0 |

## ✓ Step rep08_store_filter: GET /reports/sales?storeId=<другой> → 0 строк

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

| Тип | Проверка | Результат |
|---|---|---|
| api | GET /reports/sales?storeId=<несуществ> → 200 + 0 строк | ✓ 200 len=0 |

## Summary

- Passed: 8
- Failed: 0
- Warnings: 0
- Skipped: 0

## Critical bugs

Нет.
