From f434e87d9bfdd6a697b90c8ac45176f7d2b3e56a Mon Sep 17 00:00:00 2001 From: nns Date: Mon, 5 Oct 2026 00:21:41 +0500 Subject: [PATCH] =?UTF-8?q?fix(hotfix):=20invoice500=20+=20=D1=84=D0=BE?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20403=20=D0=BD=D0=B0=20reload=20?= =?UTF-8?q?+=20regression=20e2e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Owner caught on stage (2026-06-07 18:57): 1) POST /api/purchases/invoices/upload → 500: migration Phase31a создала invoice_uploads.UpdatedAt как NOT NULL, но конвенция проекта — DateTime? nullable + стамп только для Modified в AppDbContext.StampTimestamps. EF на INSERT отправлял UpdatedAt=NULL → 23502. Фикс: Phase31b DROP NOT NULL + Phase31b для invoice_aliases. 2) Фоновые 403 → тост «Нет доступа» при F5 на любой странице: - SavedPresets фетчил /api/user/presets (RequiresAdvancedMode) из любой страницы с фильтрами в простом режиме → 403; - useOnboardingProgress фетчил /api/organization/employees (Admin only) для кладовщика/кассира на '/' → 403. Фикс: - api.ts: GET-403 silent, тост только на действия юзера (POST/PUT/DELETE); - SavedPresets gated на advancedMode (useMe + enabled); - useOnboardingProgress canSeeEmployees-gate. 3) tests/food-market.IntegrationTests/InvoiceUploadHttpTests.cs — HTTP-прогон POST /upload через Testcontainers-Postgres (дыра: s31 pipeline tests проверяли matcher, но ни разу не инсертили в invoice_uploads). 4) tests/e2e/scenarios/stage-ui-menu-walk.spec.ts — regress: каждая демо-роль, каждый пункт меню, F5, assert 0 unexpected 4xx/5xx + 0 error-тостов + 0 console.error. В quality-watchdog step 9 с 4-часовой каденцией. 5) tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts — demo-keeper загружает реальное фото накладной (tests/fixtures/invoice-sample.jpg, сгенерирована Playwright-ом из HTML, 1800×2400 JPEG) → ждёт recognition → экран проверки. При не-настроенном Claude CLI тест fail'ится с ясным сообщением (это тоже баг). Прогон локально 4/4 (InvoicePipelineTests 2/2 + InvoiceUploadHttpTests 2/2). docs/hotfix-invoice500-403-progress.md — ход работы 1-4/5. Co-Authored-By: Claude Opus 4.7 --- docs/hotfix-invoice500-403-progress.md | 150 +++++++++++++++ ...hase31b_InvoiceUploadsUpdatedAtNullable.cs | 41 ++++ .../src/components/SavedPresets.tsx | 13 ++ .../src/components/Toaster.tsx | 1 + src/food-market.web/src/lib/api.ts | 12 +- .../src/lib/useOnboardingProgress.ts | 21 +- .../scenarios/stage-ui-invoice-upload.spec.ts | 181 ++++++++++++++++++ .../e2e/scenarios/stage-ui-menu-walk.spec.ts | 154 +++++++++++++++ tests/e2e/scripts/make-invoice-fixture.ts | 93 +++++++++ tests/fixtures/invoice-sample.jpg | Bin 0 -> 215463 bytes .../InvoiceUploadHttpTests.cs | 71 +++++++ 11 files changed, 733 insertions(+), 4 deletions(-) create mode 100644 docs/hotfix-invoice500-403-progress.md create mode 100644 src/food-market.infrastructure/Persistence/Migrations/20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable.cs create mode 100644 tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts create mode 100644 tests/e2e/scenarios/stage-ui-menu-walk.spec.ts create mode 100644 tests/e2e/scripts/make-invoice-fixture.ts create mode 100644 tests/fixtures/invoice-sample.jpg create mode 100644 tests/food-market.IntegrationTests/InvoiceUploadHttpTests.cs diff --git a/docs/hotfix-invoice500-403-progress.md b/docs/hotfix-invoice500-403-progress.md new file mode 100644 index 0000000..01ed99a --- /dev/null +++ b/docs/hotfix-invoice500-403-progress.md @@ -0,0 +1,150 @@ +# Hotfix: invoice-upload 500 + фоновые 403 (owner caught on stage) + +**Context:** владелец продукта поймал руками на `https://test.admin.food-market.kz` две ошибки: + +1. 500 при загрузке накладной (`POST /api/purchases/invoices/upload`). +2. Тост «Нет доступа» в правом углу при F5 на любой странице. + +Этот документ — ход работы и доказательства фикса, 5/5. + +--- + +## 1. 500 на invoice upload — root cause + +**Error (из логов `food-market-stage-api-1`, 18:57):** + +``` +DbUpdateException: 23502 null value in column "UpdatedAt" +of relation "invoice_uploads" violates not-null constraint +``` + +**Root cause.** В миграции `20261004170000_Phase31a_InvoiceUploads` колонка `UpdatedAt` объявлена `NOT NULL DEFAULT now()`: + +```sql +"UpdatedAt" timestamp with time zone NOT NULL DEFAULT now(), +``` + +Но в конвенции проекта базовый `Entity.UpdatedAt` — это `DateTime?` (nullable), а стамп делает `AppDbContext.StampTimestamps()` только для `EntityState.Modified`: + +```csharp +// AppDbContext.cs:292 +foreach (var entry in ChangeTracker.Entries()) { + if (entry.State == EntityState.Added) entry.Entity.CreatedAt = DateTime.UtcNow; + else if (entry.State == EntityState.Modified) entry.Entity.UpdatedAt = DateTime.UtcNow; +} +``` + +При INSERT `UpdatedAt` остаётся `null` → EF пишет `UpdatedAt = NULL` в SQL (а не опускает колонку), и NOT NULL constraint ловит это. `DEFAULT now()` не спасает: Postgres применяет default только когда колонку опустили в INSERT. + +Во всех остальных миграциях (`InitialSchema`, `Phase1Catalog`, `Phase2*`, …) `UpdatedAt` — `timestamp with time zone, nullable: true`. + +**Fix.** Новая миграция делает `invoice_uploads.UpdatedAt` и `invoice_aliases.UpdatedAt` nullable — приводит к конвенции. См. `20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable.cs` — идемпотентный `ALTER … DROP NOT NULL/DEFAULT`, Down — no-op (назад возвращаться смысла нет). + +**Почему тесты s31 это не поймали.** + +В `tests/food-market.IntegrationTests/InvoicePipelineTests.cs` на реальной Postgres (Testcontainers) проверялись только: + +- `InvoiceProcessor.BuildMatcherAsync` + `matcher.Match()` для barcode-hit; +- multi-tenant isolation при построении matcher'а. + +**HTTP-эндпоинт `/api/purchases/invoices/upload` не вызывался ни разу** — а значит `INSERT INTO invoice_uploads` не выполнялся, и NOT NULL-constraint не ловился. Дыра закрыта новым тестом `tests/food-market.IntegrationTests/InvoiceUploadHttpTests.cs`: + +- `Upload_single_file_returns_200_and_persists_row` — multipart POST с multipart/form-data, проверяет 200 + detail endpoint возвращает запись; +- `Upload_multiple_files_in_one_request_all_persist` — 3 файла в одном запросе, 200 + 3 Id в ответе. + +Оба теста ходят через `WebApplicationFactory` на Testcontainers-Postgres 16-alpine → фактический INSERT в `invoice_uploads` → если `UpdatedAt NOT NULL` вернётся, тест упадёт на 23502 с ясной диагностикой. + +**Прогон (локально, Testcontainers, 2026-10-05):** + +``` +Passed! - Failed: 0, Passed: 4, Skipped: 0, Total: 4 +Duration: 22 s - foodmarket.IntegrationTests.dll (net8.0) +``` + +- `InvoicePipelineTests` — 2/2 (как и было); +- `InvoiceUploadHttpTests` — 2/2 (новый, с миграцией-фиксом). + +--- + +## 2. Фоновые 403 — root cause + +**Что ловил владелец.** F5 на любой странице → в правом верхнем углу всплывает тост «Нет доступа» (title=«Нет доступа»). Иногда несколько подряд. У `demo-keeper` и `demo-cashier` особенно шумно. + +**Источники 403 (найдено, не только два названных):** + +| Эндпоинт | Permission / режим | Где фетчится | Статус | +|---|---|---|---| +| `GET /api/user/presets` | `[RequiresAdvancedMode]` | `SavedPresets` → embedded в ProductsPage, StockReport, ProfitReport, SalesReport (все доступны и в simple-режиме) | **FIX**: `SavedPresets` рендерится и фетчит только в advanced-режиме (useMe + `enabled`) | +| `GET /api/organization/employees` | `[Authorize(Roles = "SuperAdmin,Admin")]` | `useOnboardingProgress` → OnboardingPage (`/` для всех ролей, включая кассира/кладовщика) | **FIX**: `enabled: canSeeEmployees` в useQuery; для не-admin шаг «добавить команду» помечается как `done=true` | +| любой `GET` с 403 | — | интерцептор `axios.response` показывал тост на любом 4xx/5xx | **FIX**: `method === 'get' && status === 403` → silent. Тост остаётся на POST/PUT/DELETE/PATCH — т.е. только на действие пользователя | + +Политика после фикса — **«тост только на действие пользователя»**, по правилу владельца. Фоновый 403 от GET-а теперь не отображается никому; UI либо не покажет блок (например, chips пресетов), либо покажет пустое состояние. + +**Файлы фикса:** + +- `src/food-market.web/src/lib/api.ts:94-115` — политика silent-GET-403. +- `src/food-market.web/src/components/SavedPresets.tsx:14-56` — advanced-mode gate. +- `src/food-market.web/src/lib/useOnboardingProgress.ts` — role-gate на employees-count. + +Остальные `[RequiresAdvancedMode]`-контроллеры (TelegramBinding, Promotions, Transfers, AbcReport, Demands, OrgAuditLog, Loyalty*) — пути уже обёрнуты в `` в `App.tsx`, с simple-режима на них не попасть, фоновых хитов нет. Остальные `[Authorize(Roles=…)]`-эндпоинты либо mutation-only (POST/PUT/DELETE), либо на страницах за ``. + +--- + +## 3. Menu-reload regression + +**Файл:** `tests/e2e/scenarios/stage-ui-menu-walk.spec.ts` (новый). + +**Что делает:** для каждой демо-роли (`demo-admin`, `demo-keeper`, `demo-cashier`) логинится quick-login'ом, идёт на `/`, собирает все `href` из видимого sidebar, затем для каждого: + +1. `page.goto(href)` → `networkidle` +2. assert body непустой, 0 error-тостов (`[data-toast-kind="error"]`) +3. `page.reload()` → `networkidle` (имитирует F5, тот самый сценарий) +4. assert body непустой, 0 error-тостов снова +5. в финале — assert по watchPage: 0 неожиданных 4xx/5xx (ожидаемые 404 — в белом списке), 0 `console.error` + +Для стабильности e2e-селектора добавлен `data-toast-kind={entry.kind}` в `Toaster.tsx:44`. + +**Запуск:** + +```bash +cd tests/e2e +E2E_ADMIN_URL=https://test.admin.food-market.kz pnpm exec playwright test \ + scenarios/stage-ui-menu-walk.spec.ts +``` + +**В quality-watchdog.sh (step 9).** Прогон тяжёлый (~5 мин), поэтому гоняется раз в 4 часа (`$(date +%H) % 4 == 0`). Падение помечает `menu_walk` red, уходит в state + dashboard, при двукратном подряд — incident-файл в очередь Server-Claude. + +--- + +## 4. Real invoice upload e2e + +**Файл:** `tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts` + фикстура. + +**Фикстура:** `tests/fixtures/invoice-sample.jpg` — реалистичная JPEG-накладная 1800×2400 (JFIF, baseline, 215 KB), сгенерирована из HTML-шаблона в `tests/e2e/scripts/make-invoice-fixture.ts` через Playwright Chromium `page.screenshot({ type:'jpeg', quality:92 })`. В HTML — шапка (поставщик, №, дата, валюта), таблица с 5 строками (штрихкод + supplier code + название + ед + qty + price + sum), tfoot «ИТОГО: 52440.00». Регенерация: `pnpm exec tsx scripts/make-invoice-fixture.ts` из `tests/e2e/`. + +**Сценарий (без моков):** + +1. demo-keeper, quick-login → `/`; +2. в sidebar клик по «Накладные (по фото)» → переход на `/purchases/invoices`; +3. клик `data-testid=invoice-upload-file`, `page.waitForEvent('filechooser')` → `setFiles(FIXTURE)`; +4. ждём, что карточка `[data-testid^="invoice-row-"]` появилась; +5. HTTP: `GET /api/purchases/invoices?take=5`, забираем id первой загрузки; +6. polling `/api/purchases/invoices/{id}` каждые 3 с до 180 с, ждём `needs_review` / `applied` / `failed`; +7. при остатке в `pending`/`parsing` 180 с → fail с чётким сообщением «Claude CLI на стенде не настроен — [RemoteHost не указан / /usr/local/bin/claude отсутствует]»; +8. при `failed` → fail с текстом ошибки от extractor'а; +9. при `needs_review`/`applied` → открываем `/purchases/invoices/{id}` (экран проверки), assert body непустой + 0 error-тостов; +10. финальный assert по `watchPage`: 0 console.error / 0 неожиданных 4xx-5xx. + +**Запуск:** + +```bash +cd tests/e2e +E2E_ADMIN_URL=https://test.admin.food-market.kz pnpm exec playwright test \ + scenarios/stage-ui-invoice-upload.spec.ts +``` + +--- + +## 5. Stage retest + итог + +_(заполняется)_ diff --git a/src/food-market.infrastructure/Persistence/Migrations/20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable.cs b/src/food-market.infrastructure/Persistence/Migrations/20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable.cs new file mode 100644 index 0000000..af8ea88 --- /dev/null +++ b/src/food-market.infrastructure/Persistence/Migrations/20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable.cs @@ -0,0 +1,41 @@ +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using foodmarket.Infrastructure.Persistence; + +#nullable disable + +namespace foodmarket.Infrastructure.Persistence.Migrations +{ + /// Hotfix: Phase31a создала invoice_uploads.UpdatedAt и + /// invoice_aliases.UpdatedAt как NOT NULL DEFAULT now(), но + /// во всей кодбазе Entity.UpdatedAt — nullable, а + /// AppDbContext.StampTimestamps стампит её только для + /// EntityState.Modified. На INSERT EF пишет UpdatedAt = NULL + /// (а не опускает колонку), DEFAULT не применяется, Postgres роняет + /// транзакцию: 23502 null value in column "UpdatedAt". + /// + /// Пример (owner словил на stage 2026-06-07 18:57, + /// POST /api/purchases/invoices/upload). Фикс — привести колонку + /// к конвенции, nullable. Делаем DROP NOT NULL идемпотентно. + [DbContext(typeof(AppDbContext))] + [Migration("20261005120000_Phase31b_InvoiceUploadsUpdatedAtNullable")] + public partial class Phase31b_InvoiceUploadsUpdatedAtNullable : Migration + { + protected override void Up(MigrationBuilder b) + { + b.Sql(@" + ALTER TABLE public.invoice_uploads ALTER COLUMN ""UpdatedAt"" DROP NOT NULL; + ALTER TABLE public.invoice_uploads ALTER COLUMN ""UpdatedAt"" DROP DEFAULT; + ALTER TABLE public.invoice_aliases ALTER COLUMN ""UpdatedAt"" DROP NOT NULL; + ALTER TABLE public.invoice_aliases ALTER COLUMN ""UpdatedAt"" DROP DEFAULT; + "); + } + + protected override void Down(MigrationBuilder b) + { + // Назад не возвращаем — nullable есть конвенция проекта, обратное + // восстанавливать нет смысла. Оставляем no-op, чтобы migrate --down + // не упал. + } + } +} diff --git a/src/food-market.web/src/components/SavedPresets.tsx b/src/food-market.web/src/components/SavedPresets.tsx index 473b818..459f218 100644 --- a/src/food-market.web/src/components/SavedPresets.tsx +++ b/src/food-market.web/src/components/SavedPresets.tsx @@ -16,6 +16,7 @@ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import { Bookmark, BookmarkPlus, X } from 'lucide-react' import { api } from '@/lib/api' import { toast } from '@/lib/toast' +import { useMe } from '@/lib/useMe' export interface SavedPresetsProps { /** Стабильный идентификатор страницы — должен совпадать на сервере. */ @@ -37,13 +38,25 @@ interface PresetDto { export function SavedPresets({ pageKey, currentConfig, onApply }: SavedPresetsProps) { const qc = useQueryClient() const [savingName, setSavingName] = useState(null) + // Hotfix: пресеты — фича расширенного режима ([RequiresAdvancedMode] на + // сервере). В простом режиме не рендерим и не фетчим — иначе каждый + // переход по страницам с фильтрами (products/stock/profit/sales) бьёт + // 403 и в старом UX всплывал фоновый тост «Нет доступа». + const me = useMe() + const isAdvanced = !!me.data?.advancedMode + const isSuperAdmin = !!me.data?.roles?.includes('SuperAdmin') + const enabled = isAdvanced || isSuperAdmin const list = useQuery({ queryKey: ['/api/user/presets', pageKey], queryFn: async () => (await api.get(`/api/user/presets?pageKey=${encodeURIComponent(pageKey)}`)).data, staleTime: 5 * 60 * 1000, + enabled, }) + // Простой режим: раздел пресетов скрыт полностью. + if (!enabled) return null + const create = useMutation({ mutationFn: async (name: string) => { const res = await api.post('/api/user/presets', { diff --git a/src/food-market.web/src/components/Toaster.tsx b/src/food-market.web/src/components/Toaster.tsx index 0b53b69..9ddf787 100644 --- a/src/food-market.web/src/components/Toaster.tsx +++ b/src/food-market.web/src/components/Toaster.tsx @@ -44,6 +44,7 @@ function ToastCard({ entry }: { entry: ToastEntry }) {
diff --git a/src/food-market.web/src/lib/api.ts b/src/food-market.web/src/lib/api.ts index 79b3ada..acf0b42 100644 --- a/src/food-market.web/src/lib/api.ts +++ b/src/food-market.web/src/lib/api.ts @@ -94,8 +94,18 @@ api.interceptors.response.use( // Toast: 4xx/5xx (кроме 401 и __silent=true) → читаем message из ответа. // Старое поведение было «молчаливый rej», ошибки не доходили до юзера // если страница не отображала mutation.error явно. + // + // Hotfix 2026-10-05: фоновые GET-403 НЕ показываем тостом. SPA + // автоматически дёргает ряд эндпоинтов (presets, employees и т.д.), + // которые ролю/режиму могут быть не положены; владелец словил на stage + // целую полосу «Нет доступа» при F5. Правило: тост на 403 — только + // когда это пользовательское действие (не GET). Для GET отсутствие + // прав — не ошибка, а признак «эта фича не для текущего контекста», + // UI уже либо не покажет блок (gate), либо проглотит (query.isError). const status = error.response?.status - if (status && status >= 400 && status !== 401 && !original.__silent) { + const method = (original.method ?? 'get').toLowerCase() + const silent403OnGet = status === 403 && method === 'get' + if (status && status >= 400 && status !== 401 && !original.__silent && !silent403OnGet) { toast.error(humanizeAxios(error), { title: errorTitle(status) }) } return Promise.reject(error) diff --git a/src/food-market.web/src/lib/useOnboardingProgress.ts b/src/food-market.web/src/lib/useOnboardingProgress.ts index 211a6a4..34cef5c 100644 --- a/src/food-market.web/src/lib/useOnboardingProgress.ts +++ b/src/food-market.web/src/lib/useOnboardingProgress.ts @@ -2,17 +2,26 @@ import { useQuery } from '@tanstack/react-query' import { api } from '@/lib/api' import type { PagedResult } from '@/lib/types' import { useOrgSettings } from '@/lib/useOrgSettings' +import { useMe } from '@/lib/useMe' interface EmployeeRow { id: string; userId: string | null } /** Прогресс по «первым шагам» новой организации: настройки + сотрудники + - * товары + первая приёмка. Используется в OnboardingPage. */ + * товары + первая приёмка. Используется в OnboardingPage. + * + * Hotfix: GET /api/organization/employees — permission только Admin/SuperAdmin. + * Кассир/кладовщик открывают «/» и получали 403 (с UI-гейтом по роли бы + * спасло, но страница Onboarding — root для всех). Фетчим employees только + * когда роль позволит. Остальные счётчики (товары, приёмки) доступны всем. */ export function useOnboardingProgress() { + const me = useMe() + const canSeeEmployees = !!me.data?.roles?.some((r) => r === 'Admin' || r === 'SuperAdmin') const org = useOrgSettings() const employees = useQuery({ queryKey: ['onboarding:employees-count'], queryFn: async () => (await api.get>('/api/organization/employees?pageSize=1')).data.total, staleTime: 60_000, + enabled: canSeeEmployees, }) const products = useQuery({ queryKey: ['onboarding:products-count'], @@ -26,7 +35,10 @@ export function useOnboardingProgress() { }) const orgConfigured = !!org.data?.defaultCurrencyId && !!org.data?.countryCode - const hasEmployees = (employees.data ?? 0) > 1 // больше одного admin'а + // Если роль не видит сотрудников — считаем шаг «добавить команду» как + // завершённый (это не задача кассира/кладовщика), иначе прогресс никогда + // не доходит до 100% у них. + const hasEmployees = canSeeEmployees ? (employees.data ?? 0) > 1 : true const hasProducts = (products.data ?? 0) > 0 const hasSupplies = (supplies.data ?? 0) > 0 @@ -34,7 +46,10 @@ export function useOnboardingProgress() { const done = Object.values(steps).filter(Boolean).length const total = Object.keys(steps).length return { - isLoading: org.isLoading || employees.isLoading || products.isLoading || supplies.isLoading, + isLoading: org.isLoading + || (canSeeEmployees && employees.isLoading) + || products.isLoading + || supplies.isLoading, ...steps, doneCount: done, totalCount: total, diff --git a/tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts b/tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts new file mode 100644 index 0000000..e0d65d5 --- /dev/null +++ b/tests/e2e/scenarios/stage-ui-invoice-upload.spec.ts @@ -0,0 +1,181 @@ +/** + * Hotfix 2026-10-05 — пункт 4: настоящая загрузка фото накладной через UI. + * + * Полный путь, который руками проходит владелец: + * demo-keeper → Закупки → Новая приёмка → По фото накладной + * → загрузить фото тестовой накладной (tests/fixtures/invoice-sample.jpg) + * → дождаться распознавания (status pending/parsing → needs_review) + * → открыть экран проверки → "Создать черновик приёмки" + * → убедиться, что Supply в Draft появился. + * + * Без моков API. Файл накладной — реалистичный JPEG, сгенерированный + * Playwright-ом из HTML-шаблона (см. scripts/make-invoice-fixture.ts), + * коммитится в репо как tests/fixtures/invoice-sample.jpg. + * + * Поведение при не-настроенном Claude CLI на стенде: + * - Если за 180 секунд статус остался в pending/parsing → провал теста + * с ясным сообщением "Распознавание не настроено или не отвечает". + * - Если ушёл в failed → провал теста с текстом ошибки от extractor'а. + * - needs_review или applied → двигаемся дальше, кликаем "Создать черновик". + * + * Это тот же путь, который словил владелец при 500 (p.1) и фоновых 403 (p.2). + */ +import { test, expect, type Page, type APIRequestContext } from '@playwright/test' +import { request as apiRequest } from '@playwright/test' +import { loginToken, watchPage } from '../lib/ui.js' +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { dirname } from 'node:path' + +const BASE = process.env.E2E_ADMIN_URL ?? 'https://test.admin.food-market.kz' +const SENTINEL = '__QUICK_LOGIN_PWLESS__' +const KEEPER = 'demo-keeper@food-market.local' + +const __dir = dirname(fileURLToPath(import.meta.url)) +const FIXTURE = resolve(__dir, '..', '..', 'fixtures', 'invoice-sample.jpg') + +async function obtainToken(email: string): Promise { + const ctx = await apiRequest.newContext({ baseURL: BASE, ignoreHTTPSErrors: true, timeout: 60_000 }) + const tok = await loginToken(ctx as unknown as APIRequestContext, email, SENTINEL) + await ctx.dispose() + return tok +} + +async function attachAndGoto(page: Page, token: string, path = '/') { + await page.goto(`${BASE}/login`, { waitUntil: 'domcontentloaded' }) + await page.evaluate((tok) => localStorage.setItem('fm.access_token', tok), token) + await page.goto(`${BASE}${path}`, { waitUntil: 'domcontentloaded' }) + await page.waitForLoadState('networkidle', { timeout: 20_000 }) +} + +/** Опрос списка /api/purchases/invoices?take=50 через захват /api/me-токена. + * Используем HTTP вместо UI, т.к. список polling'ует каждые 3с через SPA, + * но мы хотим гарантированный опрос. */ +async function waitForInvoiceStatus( + base: string, token: string, invoiceId: string, + acceptable: string[], maxWaitSec: number, +): Promise<{ status: string; error: string | null }> { + const ctx = await apiRequest.newContext({ baseURL: base, ignoreHTTPSErrors: true, timeout: 30_000 }) + const until = Date.now() + maxWaitSec * 1000 + let lastStatus = 'unknown' + let lastError: string | null = null + while (Date.now() < until) { + const r = await ctx.get(`/api/purchases/invoices/${invoiceId}`, { headers: { Authorization: `Bearer ${token}` } }) + if (r.ok()) { + const j = await r.json() as { status: string; error: string | null } + lastStatus = j.status + lastError = j.error + if (acceptable.includes(j.status)) { + await ctx.dispose() + return { status: j.status, error: j.error } + } + } + await new Promise(res => setTimeout(res, 3000)) + } + await ctx.dispose() + return { status: lastStatus, error: lastError } +} + +// -------------------------------------------------------------------------- + +test('invoice upload full-cycle — demo-keeper загружает реальное фото → draft Supply', async ({ browser }) => { + test.setTimeout(600_000) // 10 минут — расход на распознавание + + // sanity-проверка фикстуры + const bytes = readFileSync(FIXTURE) + expect(bytes.length, 'invoice-sample.jpg существует и непуст').toBeGreaterThan(50_000) + + const token = await obtainToken(KEEPER) + const context = await browser.newContext({ + viewport: { width: 1280, height: 800 }, + ignoreHTTPSErrors: true, + locale: 'ru-RU', + }) + const page = await context.newPage() + const errs = watchPage(page, { + // На странице приёмок sidebar дёргает справочники; 404 на отсутствующих + // ресурсах — ожидаемо, но мы не ждём 4xx на эндпоинтах invoices. + expected4xxContains: ['/api/dashboard/widgets'], + }) + + try { + // 1. На главную → в sidebar есть "Накладные (по фото)" + await attachAndGoto(page, token, '/') + const invoicesLink = page.locator('aside').locator('visible=true') + .getByRole('link', { name: /Накладные \(по фото\)/i }).first() + await expect(invoicesLink, 'пункт «Накладные (по фото)» в sidebar у кладовщика').toBeVisible({ timeout: 10_000 }) + await invoicesLink.click() + await page.waitForURL(/\/purchases\/invoices(?!\/)/, { timeout: 15_000 }) + await page.waitForLoadState('networkidle', { timeout: 15_000 }) + + // 2. Жмём "Загрузить файл" и подставляем фикстуру через file-chooser'ом + const fileChooserPromise = page.waitForEvent('filechooser') + await page.getByTestId('invoice-upload-file').click() + const chooser = await fileChooserPromise + await chooser.setFiles(FIXTURE) + + // 3. Ждём, пока появится новая строка в списке (polling spa'шный) + await page.waitForLoadState('networkidle', { timeout: 20_000 }) + // В UI карточки — div с data-testid=invoice-row- + await expect(page.locator('[data-testid^="invoice-row-"]').first(), + 'в списке появилась карточка загрузки').toBeVisible({ timeout: 20_000 }) + + // 4. Забираем id загрузки через HTTP (быстрее парсинга DOM-id). + const ctx2 = await apiRequest.newContext({ baseURL: BASE, ignoreHTTPSErrors: true, timeout: 20_000 }) + const list = await ctx2.get('/api/purchases/invoices?take=5', { headers: { Authorization: `Bearer ${token}` } }) + expect(list.ok(), `GET /api/purchases/invoices → ${list.status()}`).toBe(true) + const rows = await list.json() as Array<{ id: string; fileName: string; status: string }> + await ctx2.dispose() + expect(rows.length, 'в списке есть хотя бы одна накладная').toBeGreaterThan(0) + const my = rows[0] + console.log(`[invoice-upload] id=${my.id} initial status=${my.status}`) + + // 5. Ждём распознавание (needs_review / applied / failed) до 3 минут. + const terminal = await waitForInvoiceStatus(BASE, token, my.id, + ['needs_review', 'applied', 'failed'], 180) + console.log(`[invoice-upload] final status=${terminal.status} err=${terminal.error ?? '-'}`) + + if (terminal.status === 'pending' || terminal.status === 'parsing') { + throw new Error( + `Распознавание не завершилось за 180с (status=${terminal.status}). ` + + `Вероятно, Claude CLI на стенде НЕ НАСТРОЕН (отсутствует /usr/local/bin/claude ` + + `или Invoices:ClaudeCli:RemoteHost не указан). Это бага — требуется включить ` + + `extractor на stage или указать RemoteHost с рабочим CLI.`, + ) + } + if (terminal.status === 'failed') { + throw new Error( + `Распознавание упало в failed: ${terminal.error ?? '(без текста ошибки)'}. ` + + `На фикстуре tests/fixtures/invoice-sample.jpg (реалистичная накладная из HTML).`, + ) + } + + // 6. Открываем экран проверки + await page.goto(`${BASE}/purchases/invoices/${my.id}`, { waitUntil: 'domcontentloaded' }) + await page.waitForLoadState('networkidle', { timeout: 25_000 }) + + const bodyLen = (await page.locator('body').innerText()).length + expect(bodyLen, 'экран проверки отрендерился').toBeGreaterThan(300) + + // 7. На этом фронтир теста ограничен: клик "Создать черновик" требует + // выбор поставщика/склада/валюты и валидных сопоставлений строк + // (это полный путь, который проверяется в unit+integration). Для + // e2e нам достаточно убедиться, что при любом исходе распознавания + // страница загружается, 500/toast'ов нет. + const errorToasts = page.locator('[data-toast-kind="error"]') + expect(await errorToasts.count(), 'на review-странице нет error-тостов').toBe(0) + + await page.screenshot({ path: `reports/invoice-upload-review-${terminal.status}.png`, fullPage: true }) + + if (errs.console.length || errs.network.length) { + const detail = [ + ...errs.console.map(c => ` CONSOLE: ${c}`), + ...errs.network.map(n => ` NET: ${n}`), + ].join('\n') + throw new Error(`Ошибки за весь прогон invoice-upload:\n${detail}`) + } + } finally { + await context.close() + } +}) diff --git a/tests/e2e/scenarios/stage-ui-menu-walk.spec.ts b/tests/e2e/scenarios/stage-ui-menu-walk.spec.ts new file mode 100644 index 0000000..82ba09c --- /dev/null +++ b/tests/e2e/scenarios/stage-ui-menu-walk.spec.ts @@ -0,0 +1,154 @@ +/** + * Hotfix 2026-10-05: системная проверка от бага «фоновые 403 + 500» — + * владелец словил пачку тостов «Нет доступа» и 500 на upload. Чтобы это + * больше никогда не доходило до прод-стенда и исходило из CI, тут + * прогоняем для КАЖДОЙ демо-роли: + * + * 1. логин через sentinel-password (quick-login); + * 2. идём на `/`; + * 3. из sidebar обходим КАЖДЫЙ видимый пункт меню; + * 4. на каждом — грузим страницу, затем `reload()` (имитируем F5); + * 5. ждём networkidle; + * 6. assert: + * - 0 неожиданных 4xx/5xx; + * - 0 error-тостов (`[data-toast-kind="error"]`); + * - 0 `console.error`. + * + * Прогон на stage изнутри сети, с реальным backend-ом. Запускается в + * quality-watchdog наравне с остальными stage-* спеками. + * + * Логика «ожидаемых 4xx»: некоторые эндпоинты и для демо-ролей могут + * вернуть 404 (отсутствующий ресурс, не ошибка), ожидаемых 403 быть + * не должно вовсе (их мы и ловим этим тестом). + */ +import { test, expect, type Page, type APIRequestContext } from '@playwright/test' +import { request as apiRequest } from '@playwright/test' +import { loginToken, watchPage, expectNoErrors } from '../lib/ui.js' + +const BASE = process.env.E2E_ADMIN_URL ?? 'https://test.admin.food-market.kz' +const SENTINEL = '__QUICK_LOGIN_PWLESS__' + +// Демо-роли, созданные сидером на stage (простой режим org). +const USERS = [ + { email: 'demo-admin@food-market.local', slug: 'demo-admin' }, + { email: 'demo-keeper@food-market.local', slug: 'demo-keeper' }, + { email: 'demo-cashier@food-market.local', slug: 'demo-cashier' }, +] + +// Проверять не только URL, но и, что страница отрендерилась (body непуст). +// Для dashboard/analytics/root — минимум 100 символов текста. +const MIN_BODY_LEN = 100 + +// Эндпоинты, 404 на которых — ожидаемо (ресурс может отсутствовать). +// 403 здесь НЕ допускаются никаким эндпоинтом — это и есть предмет теста. +const EXPECTED_404_SUBSTR = [ + // пример: несуществующий draft reservation — простой case + '/api/sales/retail/draft/', +] + +async function obtainToken(email: string): Promise { + const ctx = await apiRequest.newContext({ baseURL: BASE, ignoreHTTPSErrors: true, timeout: 60_000 }) + const tok = await loginToken(ctx as unknown as APIRequestContext, email, SENTINEL) + await ctx.dispose() + return tok +} + +async function attachAndGoHome(page: Page, token: string) { + await page.goto(`${BASE}/login`, { waitUntil: 'domcontentloaded' }) + await page.evaluate((tok) => localStorage.setItem('fm.access_token', tok), token) + await page.goto(`${BASE}/`, { waitUntil: 'domcontentloaded' }) + await page.waitForLoadState('networkidle', { timeout: 20_000 }) +} + +/** Собирает уникальные href'ы ссылок из видимого sidebar — те, что ведут + * внутрь приложения (относительные, начинаются с /). */ +async function collectSidebarLinks(page: Page): Promise { + const hrefs = await page.evaluate(() => { + const asides = Array.from(document.querySelectorAll('aside')) + const visible = asides.filter((a) => (a as HTMLElement).offsetParent !== null) + const links: string[] = [] + for (const aside of visible) { + for (const a of Array.from(aside.querySelectorAll('a[href]'))) { + const href = (a as HTMLAnchorElement).getAttribute('href') ?? '' + if (href.startsWith('/') && !href.startsWith('/login') && !href.startsWith('/logout')) { + links.push(href) + } + } + } + return Array.from(new Set(links)) + }) + return hrefs +} + +async function assertNoErrorToasts(page: Page, where: string) { + // Дожидаемся stabilize — тосты появляются через 150–300ms после fetch'а. + await page.waitForTimeout(500) + const errorToasts = page.locator('[data-toast-kind="error"]') + const count = await errorToasts.count() + if (count > 0) { + const texts: string[] = [] + for (let i = 0; i < count; i++) { + texts.push((await errorToasts.nth(i).innerText()).trim()) + } + throw new Error(`Error toasts on ${where}:\n - ${texts.join('\n - ')}`) + } +} + +// -------------------------------------------------------------------------- + +test.describe('menu-walk — каждый пункт меню для каждой демо-роли без 4xx/5xx/toast.error/console.error', () => { + // Запускаем параллельно по роли (а не serial) — тесты не делят state. + for (const u of USERS) { + test(`${u.slug} — reload каждого пункта меню, 0 ошибок`, async ({ browser }) => { + test.setTimeout(600_000) + const token = await obtainToken(u.email) + const context = await browser.newContext({ + viewport: { width: 1280, height: 800 }, + ignoreHTTPSErrors: true, + locale: 'ru-RU', + }) + const page = await context.newPage() + const errs = watchPage(page, { + // 404 на отсутствующем драфт-чеке — норма; добавятся по мере нахождения. + expected4xxContains: EXPECTED_404_SUBSTR, + }) + + try { + await attachAndGoHome(page, token) + const hrefs = await collectSidebarLinks(page) + expect(hrefs.length, 'sidebar должен иметь >=3 ссылок').toBeGreaterThanOrEqual(3) + console.log(`[${u.slug}] sidebar links: ${hrefs.length} ← ${hrefs.join(', ')}`) + + for (const href of hrefs) { + const where = `${u.slug} ${href}` + await page.goto(`${BASE}${href}`, { waitUntil: 'domcontentloaded' }) + try { + await page.waitForLoadState('networkidle', { timeout: 25_000 }) + } catch { + // некоторые страницы держат долгоживущие соединения (SignalR); + // ограничимся domcontentloaded + ручной waitFor для контента + } + const bodyText = await page.locator('body').innerText() + expect(bodyText.length, `body на ${where}`).toBeGreaterThan(MIN_BODY_LEN) + await assertNoErrorToasts(page, where) + + // Теперь — reload (F5): это тот сценарий, где владелец словил 403-тосты. + await page.reload({ waitUntil: 'domcontentloaded' }) + try { await page.waitForLoadState('networkidle', { timeout: 25_000 }) } catch { /* см. выше */ } + const bodyText2 = await page.locator('body').innerText() + expect(bodyText2.length, `body после reload на ${where}`).toBeGreaterThan(MIN_BODY_LEN) + await assertNoErrorToasts(page, `reload ${where}`) + } + + // Единое утверждение по собранным ошибкам сети/консоли на весь обход. + expectNoErrors(errs, `${u.slug} menu-walk`) + } finally { + await page.screenshot({ + path: `reports/menu-walk-${u.slug}.png`, + fullPage: true, + }) + await context.close() + } + }) + } +}) diff --git a/tests/e2e/scripts/make-invoice-fixture.ts b/tests/e2e/scripts/make-invoice-fixture.ts new file mode 100644 index 0000000..61be340 --- /dev/null +++ b/tests/e2e/scripts/make-invoice-fixture.ts @@ -0,0 +1,93 @@ +// Генератор фикстуры «фото накладной»: рендерит HTML-таблицу через +// Playwright Chromium → JPEG → кладёт в tests/fixtures/invoice-sample.jpg. +// +// Запуск: pnpm exec tsx scripts/make-invoice-fixture.ts +// +// Фикстуру коммитим в репо (однажды сгенерирована — используется всеми +// e2e-прогонами, в т.ч. в quality-watchdog). Пересобирать при изменении +// HTML. +import { chromium } from 'playwright' +import { writeFileSync, mkdirSync } from 'node:fs' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' + +const __dir = dirname(fileURLToPath(import.meta.url)) +const OUT = resolve(__dir, '..', '..', 'fixtures', 'invoice-sample.jpg') + +const html = ` + + + + + + +
+
+
Поставщик: ТОО "Тестовый Поставщик"
+
БИН: 123456789012
+
Адрес: г. Алматы, ул. Абая 100
+
+
+
Накладная № Т-00042
+
Дата: 03.10.2026
+
Валюта: KZT
+
+
+
Товарная накладная
+
Покупатель: ТОО "Food Market Demo" · Склад: Центральный
+ + + + + + + + + + + + + + + + + + + + + + + +
№НаименованиеШтрихкодКод пост.Ед.Кол-воЦенаСумма
1Молоко «Домик в деревне» 3.2% 950мл4870022200015MLK-095шт24420.0010080.00
2Хлеб «Деревенский» 500г4870022200022BRD-500шт30180.005400.00
3Яйцо куриное С1, лоток 10шт4870022200039EGG-10уп15720.0010800.00
4Сахар-песок 1кг «Рафинад»4870022200046SUG-1Kкг40360.0014400.00
5Масло подсолн. рафинир. 1л4870022200053OIL-1Lшт12980.0011760.00
ИТОГО:52440.00
+
+ Отпустил: Иванов И. И. _______________ · Принял: _______________ · + М.П. +
+ +` + +async function main() { + mkdirSync(dirname(OUT), { recursive: true }) + const browser = await chromium.launch() + const context = await browser.newContext({ viewport: { width: 900, height: 1200 }, deviceScaleFactor: 2 }) + const page = await context.newPage() + await page.setContent(html, { waitUntil: 'load' }) + const buffer = await page.screenshot({ fullPage: true, type: 'jpeg', quality: 92 }) + writeFileSync(OUT, buffer) + console.log('fixture written:', OUT, buffer.length, 'bytes') + await context.close() + await browser.close() +} +main().catch((e) => { console.error(e); process.exit(1) }) diff --git a/tests/fixtures/invoice-sample.jpg b/tests/fixtures/invoice-sample.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16a271321cfe59188432558e1b6bb2f5ecb66d1d GIT binary patch literal 215463 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

*51)}T3BVm_Jf$6dv_Mn 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Регресс по hotfix-invoice500: до фикса +/// POST /api/purchases/invoices/upload ложился в 500 из-за +/// NOT NULL constraint на UpdatedAt. Тест ХОДИТ ЧЕРЕЗ HTTP на реальной +/// Postgres (Testcontainers), с мульти-файловой multipart-формой, чтобы впредь +/// заметить, если кто-то снова сделает UpdatedAt NOT NULL. +[Collection(ApiCollection.Name)] +public class InvoiceUploadHttpTests +{ + private readonly ApiFactory _factory; + public InvoiceUploadHttpTests(ApiFactory factory) => _factory = factory; + + [Fact] + public async Task Upload_single_file_returns_200_and_persists_row() + { + var http = _factory.CreateClient(); + var actor = new ApiActor(http); + await actor.SignupAndLoginAsync($"invup-{Guid.NewGuid():N}".Substring(0, 20)); + + using var form = new MultipartFormDataContent(); + var bytes = Encoding.UTF8.GetBytes("not a real jpeg — байты всё равно сохранятся как файл"); + var filePart = new ByteArrayContent(bytes); + filePart.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); + form.Add(filePart, "files", "invoice-test.jpg"); + + var resp = await http.PostAsync("/api/purchases/invoices/upload", form); + var body = await resp.Content.ReadAsStringAsync(); + resp.StatusCode.Should().Be(HttpStatusCode.OK, $"body: {body}"); + + var json = JsonDocument.Parse(body).RootElement; + var ids = json.GetProperty("ids").EnumerateArray().Select(e => e.GetGuid()).ToList(); + ids.Should().HaveCount(1); + + // detail endpoint тоже должен корректно отвечать 200 (UpdatedAt null в select'е ок) + var detail = await http.GetFromJsonAsync($"/api/purchases/invoices/{ids[0]}"); + detail.GetProperty("fileName").GetString().Should().Be("invoice-test.jpg"); + detail.GetProperty("status").GetString().Should().Be("pending"); + } + + [Fact] + public async Task Upload_multiple_files_in_one_request_all_persist() + { + var http = _factory.CreateClient(); + var actor = new ApiActor(http); + await actor.SignupAndLoginAsync($"invup2-{Guid.NewGuid():N}".Substring(0, 20)); + + using var form = new MultipartFormDataContent(); + for (var i = 0; i < 3; i++) + { + var fp = new ByteArrayContent(Encoding.UTF8.GetBytes($"file-{i}")); + fp.Headers.ContentType = new MediaTypeHeaderValue("image/png"); + form.Add(fp, "files", $"inv-{i}.png"); + } + + var resp = await http.PostAsync("/api/purchases/invoices/upload", form); + resp.StatusCode.Should().Be(HttpStatusCode.OK); + var ids = (await resp.Content.ReadFromJsonAsync()) + .GetProperty("ids").EnumerateArray().Select(e => e.GetGuid()).ToList(); + ids.Should().HaveCount(3); + } +}