food-market/tests/e2e/scenarios
nns fd4d435658
Some checks are pending
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
test(verify-sprint): итог 78/78 stage-ui specs + V-13/14/15 verify specs + smtp4dev manual check
Финал верификационного спринта:
- 4 предварительных бага (A=rate-limit, B=/metrics SPA fallback, C=/swagger
  SPA fallback, D=Swagger off в Production) reproduce → fix → retest зелёный.
- Полный stage-ui suite на test.admin.food-market.kz: 77/77 пройдено
  (включая stage-ui-13-multitenant 5/5, stage-ui-14-mobile 5/5, signalr,
  i18n, loyalty, PWA, MinIO, telegram-status).
- Добавлены 3 новых verify-спека:
  - V-13 stage-ui-verify-csv-import: загрузка CSV в /inventory/inventories
    через UI setInputFiles на hidden file-input, актуализация actualQty/diff,
    Ctrl+S → PUT → /post → стоимость пересчитана, stock корректируется.
  - V-14 stage-ui-verify-pos-sync: POST /api/pos/v1/sales с
    idempotencyKey; повтор того же body+ключа → replayedFromCache=true,
    тот же serverSaleId. Detail GET показывает notes=pos:<csid-N>.
  - V-15 stage-ui-verify-stock-race: 5 параллельных Post(qty=1)
    на остаток=3 → ровно 3×204 + 2×409 с 'Недостаточно остатка',
    final Stock=0.
- Manual: smtp4dev на dev-vm:1025, SuperAdmin PUT
  /api/super-admin/platform-settings, employee createAccount+sendInvite
  → invite email с HTML body; forgot-password → text email с reset-token.
  После проверки SMTP сброшен в not-configured.

Сводка в docs/verify-progress.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 22:25:41 +05:00
..
auth-edge.steps.ts test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
auth-edge.yml test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
auth-password.steps.ts test(e2e): scenarios platform-smtp + auth-password 2026-05-26 11:56:29 +05:00
auth-password.yml test(e2e): scenarios platform-smtp + auth-password 2026-05-26 11:56:29 +05:00
catalog-edge.steps.ts test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
catalog-edge.yml test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
documents-edge.steps.ts test(e2e): scenario documents-edge — критичные edge-кейсы посту 2026-05-23 12:33:51 +05:00
documents-edge.yml test(e2e): scenario documents-edge — критичные edge-кейсы посту 2026-05-23 12:33:51 +05:00
employees.steps.ts test(e2e): scenario employees — CRUD, увольнение гасит логин, tenant-изоляция 2026-05-26 11:47:57 +05:00
employees.yml test(e2e): scenario employees — CRUD, увольнение гасит логин, tenant-изоляция 2026-05-26 11:47:57 +05:00
full-cycle.steps.ts test(e2e): починка контрактов supply/sale + EAN-13 + bug-hunt + full-pass отчёт 2026-05-08 11:01:56 +05:00
full-cycle.yml feat(e2e): infrastructure + first full-cycle scenario + baseline report 2026-05-08 00:05:52 +05:00
moysklad-import.steps.ts test(e2e): scenario moysklad-import + mock-сервер MoySklad 2026-05-26 11:27:16 +05:00
moysklad-import.yml test(e2e): scenario moysklad-import + mock-сервер MoySklad 2026-05-26 11:27:16 +05:00
multi-tenant-isolation.steps.ts test(e2e): scenario multi-tenant-isolation — 12 шагов проверки изоляции 2026-05-23 12:25:05 +05:00
multi-tenant-isolation.yml test(e2e): scenario multi-tenant-isolation — 12 шагов проверки изоляции 2026-05-23 12:25:05 +05:00
platform-smtp.steps.ts test(e2e): scenarios platform-smtp + auth-password 2026-05-26 11:56:29 +05:00
platform-smtp.yml test(e2e): scenarios platform-smtp + auth-password 2026-05-26 11:56:29 +05:00
reports-stats.steps.ts test(e2e): scenario reports-stats — дашбордная выручка + tenant-изоляция 2026-05-26 11:18:54 +05:00
reports-stats.yml test(e2e): scenario reports-stats — дашбордная выручка + tenant-изоляция 2026-05-26 11:18:54 +05:00
roles.steps.ts test(e2e): roles step08 проверяет permission-enforcement + rate-limit конфигурируем 2026-05-27 02:41:52 +05:00
roles.yml test(e2e): roles step08 проверяет permission-enforcement + rate-limit конфигурируем 2026-05-27 02:41:52 +05:00
security-edge.steps.ts test(e2e): scenario security-edge — auth-гейт, traversal, SQLi, tenant, CORS 2026-05-26 11:58:54 +05:00
security-edge.yml test(e2e): scenario security-edge — auth-гейт, traversal, SQLi, tenant, CORS 2026-05-26 11:58:54 +05:00
stage-2fa.steps.ts test(stage): пункт 12 — 2FA TOTP 6/6 ✓ (enroll+verify+login flow+disable) 2026-05-29 17:41:22 +05:00
stage-2fa.yml test(stage): пункт 12 — 2FA TOTP 6/6 ✓ (enroll+verify+login flow+disable) 2026-05-29 17:41:22 +05:00
stage-audit-log.steps.ts test(stage): пункт 11 — OrgAuditLog 7/7 ✓ + UTC fix 2026-05-29 17:39:54 +05:00
stage-audit-log.yml test(stage): пункт 11 — OrgAuditLog 7/7 ✓ + UTC fix 2026-05-29 17:39:54 +05:00
stage-catalog.steps.ts fix(catalog): EF8 nav-collection bug в Products.Update + unique IX на Article 2026-05-29 16:46:10 +05:00
stage-catalog.yml fix(catalog): EF8 nav-collection bug в Products.Update + unique IX на Article 2026-05-29 16:46:10 +05:00
stage-customer-return.steps.ts test(stage): пункт 7 — CustomerReturn 6/6 ✓ (создание из чека+walk-in+overreturn+multi-tenant) 2026-05-29 17:10:08 +05:00
stage-customer-return.yml test(stage): пункт 7 — CustomerReturn 6/6 ✓ (создание из чека+walk-in+overreturn+multi-tenant) 2026-05-29 17:10:08 +05:00
stage-demand.steps.ts test(stage): пункт 9 — Demand 8/8 ✓ (Cash + Credit + post + multi-tenant) 2026-05-29 17:23:03 +05:00
stage-demand.yml test(stage): пункт 9 — Demand 8/8 ✓ (Cash + Credit + post + multi-tenant) 2026-05-29 17:23:03 +05:00
stage-demo-seed.steps.ts feat(stage): demo-data seeder для test.admin.food-market.kz 2026-05-30 10:17:49 +05:00
stage-demo-seed.yml feat(stage): demo-data seeder для test.admin.food-market.kz 2026-05-30 10:17:49 +05:00
stage-enter.steps.ts fix(docs): EF8 nav-collection bug в Enters/Losses/Transfers/SupplierReturns/Inventories.Update 2026-05-29 16:57:48 +05:00
stage-enter.yml fix(docs): EF8 nav-collection bug в Enters/Losses/Transfers/SupplierReturns/Inventories.Update 2026-05-29 16:57:48 +05:00
stage-inventory.steps.ts test(stage): пункт 6 — Inventory 8/8 ✓ + logic gap по CSV-импорту 2026-05-29 17:05:28 +05:00
stage-inventory.yml test(stage): пункт 6 — Inventory 8/8 ✓ + logic gap по CSV-импорту 2026-05-29 17:05:28 +05:00
stage-loss.steps.ts test(stage): пункт 4 — Loss 8/8 ✓ (CRUD+Post+Unpost+multi-tenant) 2026-05-29 16:59:56 +05:00
stage-loss.yml test(stage): пункт 4 — Loss 8/8 ✓ (CRUD+Post+Unpost+multi-tenant) 2026-05-29 16:59:56 +05:00
stage-pos.steps.ts test(stage): пункт 14 — POS Sync API 7/7 ✓ (sync + sales с idempotency) 2026-05-29 17:53:08 +05:00
stage-pos.yml test(stage): пункт 14 — POS Sync API 7/7 ✓ (sync + sales с idempotency) 2026-05-29 17:53:08 +05:00
stage-reports.steps.ts fix(reports): 3 фикса по итогам stage-тестирования 2026-05-29 17:35:31 +05:00
stage-reports.yml fix(reports): 3 фикса по итогам stage-тестирования 2026-05-29 17:35:31 +05:00
stage-smoke.steps.ts test(stage): smoke + signup на test.admin.food-market.kz 2026-05-29 16:29:04 +05:00
stage-smoke.yml test(stage): smoke + signup на test.admin.food-market.kz 2026-05-29 16:29:04 +05:00
stage-supplier-return.steps.ts test(stage): пункт 8 — SupplierReturn 8/8 ✓ (CRUD+Post+Unpost+ref validation+multi-tenant) 2026-05-29 17:21:30 +05:00
stage-supplier-return.yml test(stage): пункт 8 — SupplierReturn 8/8 ✓ (CRUD+Post+Unpost+ref validation+multi-tenant) 2026-05-29 17:21:30 +05:00
stage-swagger.steps.ts fix(swagger): operationId + schemaId — генерация OpenAPI работает 2026-05-29 17:51:23 +05:00
stage-swagger.yml fix(swagger): operationId + schemaId — генерация OpenAPI работает 2026-05-29 17:51:23 +05:00
stage-transfer.steps.ts test(stage): пункт 5 — Transfer 7/7 ✓ (CRUD+atomic post+unpost+multi-tenant) 2026-05-29 17:01:48 +05:00
stage-transfer.yml test(stage): пункт 5 — Transfer 7/7 ✓ (CRUD+atomic post+unpost+multi-tenant) 2026-05-29 17:01:48 +05:00
stage-ui-1-signup-flow.spec.ts test(ui-deep): setup + Item 1 — signup flow (5 specs) 2026-05-30 12:33:10 +05:00
stage-ui-2-nav.spec.ts test(ui-deep): items 2-3 — navigation + Products CRUD 2026-05-30 12:52:10 +05:00
stage-ui-3-products-crud.spec.ts test(ui-deep): items 2-3 — navigation + Products CRUD 2026-05-30 12:52:10 +05:00
stage-ui-4-references-crud.spec.ts test(ui-deep): items 4-5 specs + docs 2026-05-30 13:11:47 +05:00
stage-ui-5-employees-roles.spec.ts test(ui-deep): items 4-5 specs + docs 2026-05-30 13:11:47 +05:00
stage-ui-6-supply.spec.ts test(ui-deep): items 6-9 — Supply/RetailSale/InventoryDocs/Reports 2026-05-30 13:37:01 +05:00
stage-ui-7-retail-sale.spec.ts test(ui-deep): items 6-9 — Supply/RetailSale/InventoryDocs/Reports 2026-05-30 13:37:01 +05:00
stage-ui-8-inventory-docs.spec.ts test(ui-deep): items 6-9 — Supply/RetailSale/InventoryDocs/Reports 2026-05-30 13:37:01 +05:00
stage-ui-9-reports.spec.ts test(ui-deep): items 6-9 — Supply/RetailSale/InventoryDocs/Reports 2026-05-30 13:37:01 +05:00
stage-ui-10-audit-log.spec.ts test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже 2026-05-30 13:53:57 +05:00
stage-ui-11-2fa.spec.ts test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже 2026-05-30 13:53:57 +05:00
stage-ui-12-login-edge.spec.ts test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже 2026-05-30 13:53:57 +05:00
stage-ui-13-multitenant.spec.ts test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже 2026-05-30 13:53:57 +05:00
stage-ui-14-mobile.spec.ts test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже 2026-05-30 13:53:57 +05:00
stage-ui-i18n.spec.ts test(s8-3): i18n stage e2e 2026-05-31 20:09:40 +05:00
stage-ui-minio.spec.ts test(s8-4): MinIO stage e2e + final progress 2026-05-31 20:25:19 +05:00
stage-ui-s9-loyalty.spec.ts feat(pwa+mobile+s9): PWA owner read-only + mobile tweaks + S9 stage specs 2026-05-31 21:22:30 +05:00
stage-ui-s9-mobile-audit.spec.ts feat(pwa+mobile+s9): PWA owner read-only + mobile tweaks + S9 stage specs 2026-05-31 21:22:30 +05:00
stage-ui-s9-pwa.spec.ts fix(pwa): bump cache version + filter SignalR-race errors in PWA test 2026-05-31 21:33:02 +05:00
stage-ui-signalr.spec.ts test(s8-4): MinIO stage e2e + final progress 2026-05-31 20:25:19 +05:00
stage-ui-telegram.spec.ts test(s8-2): telegram stage e2e 2026-05-31 19:57:03 +05:00
stage-ui-verify-csv-import.spec.ts test(verify-sprint): итог 78/78 stage-ui specs + V-13/14/15 verify specs + smtp4dev manual check 2026-06-04 22:25:41 +05:00
stage-ui-verify-pos-sync.spec.ts fix(stage-tests): IP-limit 60/min, locale ru-RU в playwright, исправлены payload'ы verify-spec'ов 2026-06-04 17:38:36 +05:00
stage-ui-verify-stock-race.spec.ts fix(stage-tests): IP-limit 60/min, locale ru-RU в playwright, исправлены payload'ы verify-spec'ов 2026-06-04 17:38:36 +05:00
stock-concurrency.steps.ts test(e2e): scenario stock-concurrency — конкурентное проведение приёмок 2026-05-26 11:16:11 +05:00
stock-concurrency.yml test(e2e): scenario stock-concurrency — конкурентное проведение приёмок 2026-05-26 11:16:11 +05:00
stock-invariant-deep.steps.ts test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
stock-invariant-deep.yml test(e2e): scenarios auth-edge, catalog-edge, stock-invariant-deep 2026-05-26 11:03:47 +05:00
superadmin-console.steps.ts test(e2e): scenario superadmin-console — архив/восстановление/владелец/удаление 2026-05-26 11:53:32 +05:00
superadmin-console.yml test(e2e): scenario superadmin-console — архив/восстановление/владелец/удаление 2026-05-26 11:53:32 +05:00