From 4986d85b73be144409b749608c8607b359939b1f Mon Sep 17 00:00:00 2001 From: nns Date: Fri, 9 Oct 2026 10:37:57 +0500 Subject: [PATCH] =?UTF-8?q?test(uat):=20=D1=80=D0=B0=D1=81=D1=88=D0=B8?= =?UTF-8?q?=D1=80=D0=B8=D1=82=D1=8C=20mobile-UAT=20=D0=B4=D0=BE=2016=20?= =?UTF-8?q?=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=BE=D0=B2=20P1-P4=20+=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D1=91=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stage-ui-uat-mobile проходит по 16 спискам P1-P4 на 390px (каталог/контрагенты/ склад/приёмки/продажи/деньги/отчёты/сотрудники): без h-scroll, console-ошибок и 5xx. Отчёт дополнен: UI-гейтинг по ролям (menu-walk 3/3), окно кассы Windows 11. Co-Authored-By: Claude Opus 4.8 --- docs/uat-report-2026-10-09.md | 27 ++++++++++--------- .../e2e/scenarios/stage-ui-uat-mobile.spec.ts | 13 ++++++++- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/docs/uat-report-2026-10-09.md b/docs/uat-report-2026-10-09.md index 2cbe69c..fecf22b 100644 --- a/docs/uat-report-2026-10-09.md +++ b/docs/uat-report-2026-10-09.md @@ -45,23 +45,26 @@ | `catalog/counterparties` | пустое имя | «Название обязательно.» (+рус. заголовок) | ✓ | | `inventory/transfers` | в простом режиме | 403 «доступно в расширенном режиме» | ✓ | -### B3. Экраны P1 на ширине телефона (390px) — ✅ -Playwright-спека `stage-ui-uat-mobile.spec.ts` (в nightly-наборе): dashboard, catalog/products, -inventory/stock, sales/retail, reports — **без горизонтального скролла**, без console-ошибок и 5xx. -Скриншоты: `tests/e2e/reports/uat-mobile/` (галерея `index.html`). - -| Экран | 390px без h-scroll | console/5xx | ✓/✗ | -|---|---|---|---| -| Дашборд | да | чисто | ✓ | -| Товары | да | чисто | ✓ | -| Остатки | да | чисто | ✓ | -| Продажи | да | чисто | ✓ | -| Отчёты | да | чисто | ✓ | +### B3. Экраны P1–P4 на ширине телефона (390px) — ✅ +Playwright-спека `stage-ui-uat-mobile.spec.ts` (в nightly-наборе): 16 экранов — +dashboard, catalog/products, counterparties, inventory/{stock,movements,enters,losses, +inventories}, purchases/supplies, sales/retail, money/{accounts,shifts}, reports/{sales, +stock,profit}, settings/employees — **без горизонтального скролла**, без console-ошибок и 5xx. +Скриншоты: `tests/e2e/reports/uat-mobile/` (галерея `index.html`). Все 16 — ✓. Плюс на «Остатках» (390px): по умолчанию виден товар со стоком с артикулом/штрихкодом, нулевой скрыт; тумблер «Показать нулевые» показывает нулевой — визуально подтверждено (`stock-includeZero-390.png`). +### B3a. UI-гейтинг прав по ролям (demo-admin/keeper/cashier) — ✅ (попутно) +menu-walk (watchdog step 9) прошёл для 3 ролей и подтвердил разное меню: admin 34 пункта, +keeper 17, cashier 8 — reload каждого пункта без 4xx/5xx/toast.error/console.error. 3/3 ✓. + +### B3b. Реальное окно кассы на Windows 11 с новым лого — ✅ (rebrand) +Снято на win11-kassa-test VM (`foodmarket.Pos.exe --demo`): заголовок «ALL MARKET · Касса», +крупное лого all market, «Касса» рядом, экран продажи целиком, таскбар Windows 11. +`docs/rebrand-screenshots/now-pos-win11.png` (коммит rebrand:, отдельно от фиксов). + ### B4. Прочие найденные и починенные баги (детали в filters-sweep-progress.md) - Будущие времена в «Последние продажи» — нормализация даты к UTC + clamp будущего. - `causeUserId=null` в алертах минуса — автор пишется для всех типов документов. diff --git a/tests/e2e/scenarios/stage-ui-uat-mobile.spec.ts b/tests/e2e/scenarios/stage-ui-uat-mobile.spec.ts index da0cb2a..ed84382 100644 --- a/tests/e2e/scenarios/stage-ui-uat-mobile.spec.ts +++ b/tests/e2e/scenarios/stage-ui-uat-mobile.spec.ts @@ -55,9 +55,20 @@ test.describe('UAT mobile 390px', () => { const pages: [string, string, RegExp][] = [ ['/dashboard', 'dashboard', /./], ['/catalog/products', 'catalog-products', /Товары|товар/i], + ['/catalog/counterparties', 'counterparties', /./], ['/inventory/stock', 'stock', /Остатки/i], + ['/inventory/movements', 'movements', /./], + ['/inventory/enters', 'enters', /./], + ['/inventory/losses', 'losses', /./], + ['/inventory/inventories', 'inventories', /./], + ['/purchases/supplies', 'supplies', /./], ['/sales/retail', 'sales-retail', /Продажи|чек/i], - ['/reports', 'reports', /Отчёт|отчёт/i], + ['/money/accounts', 'money-accounts', /./], + ['/money/shifts', 'money-shifts', /./], + ['/reports/sales', 'reports-sales', /Отчёт|отчёт|продаж/i], + ['/reports/stock', 'reports-stock', /Остат|Отчёт/i], + ['/reports/profit', 'reports-profit', /./], + ['/settings/employees', 'settings-employees', /./], ] for (const [path, shot, _re] of pages) { await attachSession(page, sess, path)