Перейти до вмісту

� Матриця Покриття Тестами — SmartFeed Studio

📊 Повний Звіт про Автоматизовані Тести (264 з 264 пройдено — 100% PASS)

[!NOTE] Платформа SmartFeed Studio побудована на чіткій архітектурі Local-First (Desktop) + Cloud SaaS Gatekeeper (Backend):

  • Центральний хмарний бекенд (services/backend-api + PostgreSQL): керує безпекою, користувачами, організаціями, командними місцями, тарифами, ліцензіями, платежами, метаданими S3 бекапів та динамічною навігацією (139 E2E тестів у 11 сьютах).
  • Десктопний клієнт (apps/desktop + Tauri + SQLCipher): обробляє всі важкі комерційні дані (каталоги, товари 50k–500k SKU, фотографії, атрибути, постачальники, правила цін, черги імпорту та експортні фіди) локально та конфіденційно на пристрої (57 Playwright тестів).
  • Веб-портал адміністратора (apps/admin-portal): панель управління користувачами, організаціями, тарифами, платежами та динамічною навігацією (68 Playwright тестів).

1. Бекенд API (Jest E2E — 139 тестів)

Команда запуску: pnpm --filter @smartfeed/backend-api test:e2e

Файл тестуЕндпоінти / ФункціоналКількістьСтатус
test/storage-workspace.e2e-spec.tsGET /storage/workspace/default-path, POST /storage/workspace/init (фізичні папки, catalog.db, workspace.json), GET /storage/workspace/info, GET /storage/workspace/stats (реальні лічильники та байти), POST /storage/workspace/backup, POST /storage/workspace/maintenance, POST /storage/workspace/clear-cache, POST /storage/workspace/migrate8✅ PASS
test/auth.e2e-spec.tsPOST /auth/register, POST /auth/login12✅ PASS
test/password-recovery.e2e-spec.tsPOST /auth/forgot-password, POST /auth/reset-password8✅ PASS
test/payments.e2e-spec.tsPOST /payments/checkout, POST /payments/wayforpay/webhook (HMAC-MD5, Accept квитанція, авто-продовження ліцензії), GET /payments/transactions, GET /payments/stats, GET /payments/settings, PATCH /payments/settings/:provider15✅ PASS
test/licenses.e2e-spec.tsGET /licenses/my, GET /licenses/quotas (уніфікований розрахунок квот, динамічні ліміти), POST /licenses/select-plan, RequireActiveLicenseGuard, PATCH /licenses/:id/status (Suspend/Resume), DELETE /licenses/:id17✅ PASS
test/organizations.e2e-spec.tsGET /organizations, GET /organizations/:id, PATCH /organizations/:id, GET /members, POST /members (maxTeamSeats), DELETE /members/:id, корпоративний апгрейд, успадкування ліцензії, блокування при закінченні терміну та відновлення13✅ PASS
test/team-invitations.e2e-spec.tsPOST /organizations/:id/invitations, GET /organizations/:id/invitations, DELETE /organizations/:id/invitations/:id, GET /invitations/:token, POST /invitations/accept, 403 захист зміни тарифу для MEMBER, Mailpit доставка11✅ PASS
test/users.e2e-spec.tsGET /users, GET /users/stats, POST /users, PATCH /users/:id/status, DELETE /users/:id, SUPER_ADMIN exclusion, orgRoleFilter (OWNERS, MEMBERS), POST /auth/change-password18✅ PASS
test/security-access-control.e2e-spec.tsRBAC захист адмінки, мульти-тенантна ABAC ізоляція організацій, заборона зміни тарифів для MEMBER (ONLY_OWNER_CAN_CHANGE_PLAN), валідація пароля при інвайті, S3 ізоляція за userId17✅ PASS
test/navigation.e2e-spec.tsGET /navigation, GET /navigation/admin, POST /navigation, PATCH /navigation/:id, DELETE /navigation/:id8✅ PASS
test/plans.e2e-spec.tsGET /plans, GET /plans/admin, POST /plans, PATCH /plans/:id, DELETE /plans/:id, GET /licenses/admin12✅ PASS

Разом по бекенду: 11 сьютів — 139 тестів — 139 passing (100%)


2. Десктопний Клієнт (Playwright E2E — 57 тестів)

Команда запуску: pnpm test:desktop

Файл тестуСценарії тестуванняКількістьСтатус
e2e/pricing-rules-channels.spec.tsМодальне вікно багаторівневих правил націнки постачальника, інтерактивний калькулятор вхідної націнки, збереження та видалення правил категорій/діапазонів, вкладка «Канали експорту та Маркетплейси», створення каналу Rozetka зі зворотною націнкою, симулятор маржинальності та чистого заробітку, 1-клік копіювання Live Feed URL, двомовність UA ⇄ EN3✅ PASS
e2e/workspace-storage.spec.tsЛокальна база SQLCipher, майстер вибору робочої папки (Onboarding), вибір кастомної папки, вкладка «База даних та сховище» у Налаштуваннях (дискові метрики, створення бекапів, VACUUM дефрагментація, очищення кешу), перенесення/міграція робочої папки, двомовність UA ⇄ EN5✅ PASS
e2e/auth.spec.tsЗахист роутів, 401 помилка, вхід, реєстрація з назвою компанії, мова UA/EN, тема6✅ PASS
e2e/password-recovery.spec.tsФорма відновлення, валідація токену, зміна паролю, вхід з новим паролем7✅ PASS
e2e/plans.spec.tsПерегляд планів, перемикач періоду Щомісяця/Щороку (-20% знижка), зворотний відлік, Checkout Modal (Review, Sandbox Approved/Declined), авто-розблокування каталогів при Approved, надійне блокування при Declined, перехід у порівняльну матрицю, zero-duplicate requests, i18n7✅ PASS
e2e/team.spec.tsКоманда та воркспейс, квота місць (1/1, 2/3, 3/3, ∞), інвайти (токен-посилання, Nodemailer), список очікуваних інвайтів, видалення, readonly режим та приховання тарифів для MEMBER, i18n9✅ PASS
e2e/suppliers-feeds.spec.tsПостачальники, квотні картки, перегляд підключених фідів (SupplierFeedsModal), запуск повторної синхронізації, майстер імпорту (95vw), вибірковий чекліст категорій з підрахунком SKU та лімітів квоти, блокування кнопки імпорту при переліміті SKU та динамічне розблокування, неблокуюче відправлення у чергу BullMQ, плаваючий віджет GlobalJobProgressBar, перевірка стійкої шапки (solid thead), блокування переліміту, єдина реактивна синхронізація (DataSync)7✅ PASS
e2e/quota-reconciliation.spec.tsУзгодження надлишку при зниженні тарифу (Downgrade Reconciliation): попереджувальний банер, діалог узгодження з 100% непрозорою шапкою, вибіркове видалення категорій з живим розрахунком залишку SKU, вкладка фідів (лаконічні URL, іконки-смітники), вкладка постачальників, неблокуюче фонове видалення та прогрес4✅ PASS
e2e/pages-resilience.spec.tsКаталоги товарів, AI Асистент, хмарна синхронізація, i18n словники, обробка помилок ErrorBoundary3✅ PASS
e2e/navigation.spec.tsСайдбар меню, фільтрація за ролями, згортання/розгортання, пункт Команда2✅ PASS
e2e/theme.spec.tsПалітри shadcn (Zinc, Slate, Stone, Bronze), Dark/Light режим3✅ PASS

Разом по десктопу: 11 сьютів — 57 тестів — 57 passing (100%)


3. Адмін-Панель (Playwright E2E — 68 тестів)

Команда запуску: pnpm test:admin

Файл тестуСценарії тестуванняКількістьСтатус
e2e/payments.spec.tsПлатіжні системи, налаштування WayForPay, журнал транзакцій, KPI картки, пошук, пагінація, фільтри за статусом, Zero-Duplicate Requests, відсутність емодзі у селектах, i18n6✅ PASS
e2e/plans.spec.tsКартки планів, порівняльна таблиця, створення плану, редагування параметрів, інлайн-редагування пунктів переваг, перемикання UA/EN, Zero-Duplicate Requests6✅ PASS
e2e/users.spec.tsТаблиця користувачів, ієрархія командних підрядків (акордеон), модалка керування командою організації, 3-крапки меню дій (зупинка/активація/видалення), створення користувача, пошук, фільтрація за ролями, фасетний тулбар, i18n11✅ PASS
e2e/licenses.spec.tsСтворення та видача ключів, зміна статусу, видалення, пошук, фільтри, Zero-Duplicate Requests, i18n9✅ PASS
e2e/navigation.spec.tsКерування меню сайдбару, фільтрація за ролями та цільовими додатками, створення/редагування/видалення пунктів, перевірка лінка налаштувань9✅ PASS
e2e/dashboard.spec.tsKPI метрики, швидкі дії, активність користувачів, Zero-Duplicate Requests, перемикання мови7✅ PASS
e2e/auth.spec.tsАвтентифікація адміністратора, захист роутів, 401/403 блокування8✅ PASS
e2e/password-recovery.spec.tsВідновлення пароля адміністратора, скидання та оновлення облікових даних6✅ PASS
e2e/settings.spec.tsПрофіль адміністратора, зміна паролю, валідація, інфраструктурні статуси, двомовність UA ⇄ EN3✅ PASS
e2e/theme.spec.tsПеремикання палітр shadcn, монохромна схема Zinc, Dark/Light3✅ PASS

Разом по адмін-панелі: 10 сьютів — 68 тестів — 68 passing (100%)


🏆 Підсумковий Результат

  • Backend API: 139 тестів (100% PASS)
  • Desktop Client: 57 тестів (100% PASS)
  • Admin Portal: 68 тестів (100% PASS)
  • Загалом: 264 / 264 тести пройдено (100% успіх)