Три новых роута из 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>
2.9 KiB
2.9 KiB
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.
Чек-лист
- 1. Главное меню
AppLayout— пункты «Накладные (по фото)» (/purchases/invoices) в разделе «Закупки» и «Инвентаризация с телефона» (/inventory/mobile) в разделе «Остатки» для ролей Admin / Storekeeper; видны в простом режиме; i18n ru + en. - 2. Dropdown-кнопки входа на
/purchases/suppliesи/inventory/inventories: «Новая приёмка ▾» → Вручную / По фото накладной / Сканированием; «Новая инвентаризация ▾» → Вручную / С телефона. - 3. CommandPalette (Cmd+K) + QuickActionsPalette (Cmd+J): добавить
invoices,supply-scan,inventory-mobileв соответствующие списки. - 4. ПРОВЕРКА ГЛАЗАМИ — Playwright
stage-ui-menu-links.spec.ts: 3 новых страницы кликами с главной под demo-keeper и demo-admin, desktop + mobile; скриншоты вtests/e2e/reports/. Негатив для demo-cashier. - 5. Аудит «сирот» — скрипт
tests/scripts/menu-orphans-audit.mjs, отчёт вdocs/menu-orphans-report.md. - 6.
~/deploy-stage.sh+ ретест п.4 на свежем stage.
Протокол выполнения
(заполняется построчно; номера шагов — из чек-листа выше.)