food-market/docs/uat-per-control-progress.md
nns a539c31cbc
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
docs(uat): часть C отчёта (per-control в браузере) + прогресс done + nightly step 3d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 12:11:33 +05:00

67 lines
5.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.

# UAT по каждому элементу управления — прогресс
Доделываем то, что в `docs/uat-report-2026-10-09.md` честно помечено «не покрыто»:
per-control UI-UAT P2–P4 в браузере + UI-гейтинг прав по ролям (кнопки и прямые URL).
Правило владельца: НЕ перепроверять уже покрытое (часть A отчёта, filters-sweep 21/21,
mobile-390, ошибки ввода) — только непокрытое.
Легенда: [x] готово · [~] частично · [ ] не начато.
## Как устроены списки (чтобы тестировать осмысленно)
Все list-страницы используют общий `useCatalogList(url, extraParams)` → `search`, `page`,
`sortKey/sortOrder` (клик по заголовку колонки), фильтры — `<Select>`; экспорт — `ExportButton`
(с текущими фильтрами); действия документа (провести/отменить/удалить/на основании/печать) —
на страницах редактирования (`*/new`, `*/:id`). Права в UI — `RoleGuard` (показывает
«Нет доступа») и `useCan()`/`AdvancedModeGuard`.
## Реестр экранов × контролов (P1–P4)
Контролы: S=поиск, F=фильтры (период/статус/склад/точка/кассир/контрагент/группа), O=сортировка
по колонкам, P=пагинация, R=сброс, X=экспорт-с-фильтрами, A=действия (провести/отменить/удалить/
печать/на основании), G=гейтинг прав (кнопки + прямой URL).
| Экран | URL | Контролы | Статус |
|---|---|---|---|
| Товары | /catalog/products | S F O P X A | [ ] |
| Остатки | /inventory/stock | (покрыт filters-sweep) | [x] |
| Движения | /inventory/movements | S F O P | [ ] |
| Приёмки | /purchases/supplies | S F O P X A | [ ] |
| Накладные по фото | /purchases/invoices | S F A | [ ] |
| Оприходования | /inventory/enters | S F O P A | [ ] |
| Списания | /inventory/losses | S F O P A | [ ] |
| Инвентаризации | /inventory/inventories | S F O P A | [ ] |
| Возвраты поставщику | /purchases/supplier-returns | S F O P A | [ ] |
| Продажи (чеки) | /sales/retail | S F O P X A | [ ] |
| Контрагенты | /catalog/counterparties | S F O P A G | [ ] |
| Сотрудники | /settings/employees | S A G | [ ] |
| Точки продаж | /catalog/retail-points | A G | [ ] |
| Склады | /catalog/stores | A G | [ ] |
| Счета | /money/accounts | A G | [ ] |
| Платежи/транзакции | /money/transactions | S F O P G | [ ] |
| Смены | /money/shifts | F O P A | [ ] |
| Долги поставщикам | /money/supplier-debts | S F O P G | [ ] |
| Отчёт продаж | /reports/sales | F X G | [ ] |
| Отчёт прибыли | /reports/profit | F X G | [ ] |
| Отчёт денег | /money/report | F X G | [ ] |
| Отчёт остатков | /reports/stock | F X | [ ] |
| Проверка данных | /catalog/data-quality | (покрыт) | [x] |
## План
1. [x] Browser e2e `stage-ui-uat-controls.spec.ts`: контрол шлёт правильный параметр
(поиск→search, сорт→sort, фильтр→свой параметр, пагинация→page=2, экспорт→/export&format);
семантику параметр→строки держит filters-sweep. 21/21 ✓ на стенде.
2. [x] Browser e2e действий документа: приёмка черновик → провести (чекбокс «Проведено») →
снять проведение → удалить — настоящими кнопками UI, проверяем POST/DELETE 2xx.
3. [x] Browser e2e прав `stage-ui-uat-permissions.spec.ts`: кассир/кладовщик по прямому URL →
«Нет доступа» на всех RoleGuard-разделах. 2/2 ✓. (Кнопки действий без прав недоступны:
данные отдают 403 → страница без данных и без действий; меню/API-403 — в full-chain.)
4. [x] Сводка в uat-report (часть C): экран → контрол → ✓/✗ (✗ нет). P1–P2 в nightly (step 3d).
## Итог (2026-10-09)
Per-control UI-UAT в браузере доделан: контролы списков (поиск/фильтры/сортировка/пагинация/
сброс/экспорт) + жизненный цикл документа кнопками + гейтинг прав по прямым URL. 21/21 + 2/2 ✓
на стенде; добавлено в nightly (step 3d). Отчёт — часть C в docs/uat-report-2026-10-09.md.
## Что НЕ трогаем
Прод, shared-postgres, global.json, gateway nginx, sklad.