Три новых роута из Sprint 31 были достижимы только по прямому URL — в sidebar/командной палитре их не было. Добавлено: - AppLayout: «Накладные (по фото)» (/purchases/invoices) в разделе «Закупки», «Инвентаризация с телефона» (/inventory/mobile) в «Остатках» — для Admin и Storekeeper, видно в простом режиме; i18n ru + en. - SplitButtonMenu — переиспользуемая dropdown-кнопка «Новая…». SuppliesPage: вручную / по фото / сканированием. InventoriesPage: вручную / с телефона. - CommandPalette (Cmd+K): новые static-pages invoices, supply-scan, inventories (был пропущен), inventory-mobile. - QuickActionsPalette (Cmd+J): invoice-new, supply-scan, inventory-mobile. - Параллельно всплыл сирота /admin/diagnostic — добавили ссылку в sidebar под Admin'ом. Playwright stage-ui-menu-links.spec.ts: demo-keeper + demo-admin, desktop 1280×800 + mobile 375×667 — кликами с главной до всех трёх новых экранов, скриншоты в reports/. Негатив для demo-cashier проверяет, что ему эти пункты не видны. Orphan-audit: tests/scripts/menu-orphans-audit.mjs парсит App.tsx и диффит против фактических точек входа (sidebar/Cmd+K/Cmd+J/split- кнопок). После всех правок — 0 сирот (отчёт docs/menu-orphans-report.md). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
36 lines
2.9 KiB
Markdown
36 lines
2.9 KiB
Markdown
# Menu links: достижимость новых страниц Sprint 31
|
||
|
||
**Проблема (от координатора).** Маршруты `/purchases/invoices`,
|
||
`/purchases/invoices/:id`, `/purchases/supplies/scan` и
|
||
`/inventory/mobile` объявлены в `App.tsx`, но пользователь к ним
|
||
никак не доберётся: ни в sidebar (`AppLayout.tsx`), ни в
|
||
`CommandPalette`, ни в `QuickActionsPalette` ссылок нет. На страницах
|
||
`/purchases/supplies` и `/inventory/inventories` тоже нет кнопок,
|
||
которые бы вели на новые UX-ветки.
|
||
|
||
**Условия задачи.**
|
||
- Админ + Кладовщик видят новые пункты; Кассир — нет.
|
||
- Пункты видны в простом режиме (`isAdvancedMode === false`) тоже —
|
||
это базовые приёмка/инвентаризация, а не расширенные фичи.
|
||
- i18n: ru обязательно, en — потому что меню переводится.
|
||
- Playwright-проход «кликами с главной» на desktop (1280×800) +
|
||
mobile (375×667) под demo-keeper и demo-admin; плюс негатив-проход
|
||
для demo-cashier.
|
||
- Аудит сирот: диффим `<Route path>` из `App.tsx` против
|
||
фактических точек входа.
|
||
|
||
**Границы.** Не трогаем прод, `global.json`, `deploy/*/nginx`.
|
||
|
||
## Чек-лист
|
||
|
||
- [x] 1. Главное меню `AppLayout` — пункты «Накладные (по фото)» (`/purchases/invoices`) в разделе «Закупки» и «Инвентаризация с телефона» (`/inventory/mobile`) в разделе «Остатки» для ролей Admin / Storekeeper; видны в простом режиме; i18n ru + en.
|
||
- [x] 2. Dropdown-кнопки входа на `/purchases/supplies` и `/inventory/inventories`: «Новая приёмка ▾» → Вручную / По фото накладной / Сканированием; «Новая инвентаризация ▾» → Вручную / С телефона.
|
||
- [x] 3. CommandPalette (Cmd+K) + QuickActionsPalette (Cmd+J): добавить `invoices`, `supply-scan`, `inventory-mobile` в соответствующие списки.
|
||
- [x] 4. ПРОВЕРКА ГЛАЗАМИ — Playwright `stage-ui-menu-links.spec.ts`: 3 новых страницы кликами с главной под demo-keeper и demo-admin, desktop + mobile; скриншоты в `tests/e2e/reports/`. Негатив для demo-cashier.
|
||
- [x] 5. Аудит «сирот» — скрипт `tests/scripts/menu-orphans-audit.mjs`, отчёт в `docs/menu-orphans-report.md`.
|
||
- [x] 6. `~/deploy-stage.sh` + ретест п.4 на свежем stage.
|
||
|
||
## Протокол выполнения
|
||
|
||
(заполняется построчно; номера шагов — из чек-листа выше.)
|