diff --git a/docs/negative-stock-alerts-progress.md b/docs/negative-stock-alerts-progress.md index 20232a1..d553950 100644 --- a/docs/negative-stock-alerts-progress.md +++ b/docs/negative-stock-alerts-progress.md @@ -45,10 +45,12 @@ **Мобильное API** — `GET /api/notifications` + `/count` + `POST …/read` + recount ✓; `GET /api/negative-stock` + `/count` ✓. **APNs-заглушка** — `device_tokens` (Phase40) + `IPushSender`/ `StubPushSender` ✓. **Отложено:** Web Push (VAPID + SW push-обработчик) — браузерный канал. -6. [~] Тесты: unit тихих часов **3/3** ✓; integration **3/3** (минус→алерт→recount→авто-закрытие; - фильтр negativeOnly; **джоб → уведомление админу + дебаунс + read-all**) ✓; full-chain 9/13 ✓. - Скрины стенда ✓ — баннер, фильтр, **центр уведомлений** (`neg-notif-center2-*.png`), **настройки** - (`neg-settings-*.png`). **Отложено:** автоматический e2e-браузер-тест колокольчика/«Пересчитать». +6. [~] Тесты: unit тихих часов **3/3** ✓ (вся юнит-сьют 297/297 — попутно починен SQLite-харнесс); + integration **3/3** (минус→алерт→recount→авто-закрытие; фильтр negativeOnly; **джоб → + уведомление админу + дебаунс + read-all**) ✓; **e2e-браузер** (`stage-ui-negative-stock.spec.ts`: + баннер + «Пересчитать» → черновик + фильтр) ✓; full-chain 9/13 ✓. Скрины стенда ✓ — баннер, + фильтр, центр уведомлений, настройки. **Отложено:** e2e-браузер именно на колокольчик (зависит + от cron-джоба; покрыт integration-тестом + скрином). 7. [x] Снята блокировка продажи в минус: розница, касса (POS-синк), опт, списание, перемещение, возврат поставщику, отмена приёмки. Деньги (минус счёта) — не трогали (другое правило). 8. [ ] **Отложено** (десктопная Avalonia-касса): предупреждение в строке + жёлтый индикатор в шапке + @@ -73,11 +75,11 @@ ## Что отложено (нужен отдельный проход) - **Web Push (VAPID)** — браузерный push-канал (ключи + SW push/notificationclick + подписка). -- **Автоматический e2e-браузер-тест** колокольчика/«Пересчитать» (ручные скрины сняты). - **Avalonia-касса (п.8)** — индикатор/предупреждение; сначала нужен задел: остатки в POS-sync (у `PosProduct` нет количества). Отдельная десктоп-поверхность. - **Реальная отправка push** (APNs/FCM) — нужен платный Apple Developer; заглушка в DI готова. -**DONE не ставим — остаются п.5 (Web Push), п.6 (e2e-браузер), п.8 (касса).** +- e2e-браузер на сам колокольчик (зависит от cron-джоба) — покрыт integration + скрином. +**DONE не ставим — остаются п.5 (Web Push VAPID) и п.8 (десктоп-касса).** ## Что НЕ трогаем Прод, shared-postgres, global.json, gateway nginx, sklad. Расчёт себестоимости (п.12 отложен).