From 26211e898d49deb9834ad07f15c10cd0727ba705 Mon Sep 17 00:00:00 2001 From: Hardik Date: Sun, 17 May 2026 18:25:42 +0530 Subject: [PATCH] test(e2e): add comprehensive Playwright test suite for all recent features MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Covers 21 user story groups extracted from the last 15+ feature commits: - rebrand.spec.ts — PPMS branding on login page, sidebar, and tab title - dashboard/po-status-badges.js — color-coded status badges for submitter & manager - po-submit-button.spec.ts — Submit for Approval button visibility on DRAFT POs - notification-bell.spec.ts — in-app bell icon, unread badge, and panel open - export-gate.spec.ts — export buttons gated on MGR_APPROVED+ status; 403 on pre-approval - payment-history.spec.ts — /payments/history accessible to ACCOUNTS; redirects others - partial-receipt.spec.ts — per-item delivery tracking UI on paid POs - vendor-auto-verify.spec.ts — vendor verification status visible in admin - admin-bordered-buttons.spec.ts — Edit/Deactivate/Delete have border classes on admin pages - profile.spec.ts — profile page loads for all roles; signature section for MANAGER/SUPERUSER - inventory/items-tags.spec.ts — Cheapest/Closest tags and auto-sort by distance - inventory/cart-icon.spec.ts — cart header icon with badge; item/vendor detail pages - mobile/desktop-required.spec.ts — Desktop Required overlay for non-mobile roles + sign-out - mobile/manager-approvals.spec.ts — mobile card layout; edit form hidden; action buttons visible - mobile/accounts-payments.spec.ts — ACCOUNTS payments queue and buttons on mobile - mobile/bottom-nav.spec.ts — Home/Approvals/Profile tabs for MANAGER; Home/Payments/Profile for ACCOUNTS - approvals-edit-highlight.spec.ts — diff indicators on resubmitted POs Also adds shared helpers/login.ts with USERS constants, login(), createDraftPo(), and submitPo() — all using name-attribute selectors since PO form labels have no htmlFor binding. Playwright config updated: workers capped at 2 locally (was unlimited) to prevent auth concurrency failures, and retries set to 1 locally. Co-Authored-By: Claude Sonnet 4.6 --- App/pelagia-portal/playwright.config.ts | 4 +- .../tests/e2e/admin-bordered-buttons.spec.ts | 128 ++++++++ .../e2e/approvals-edit-highlight.spec.ts | 155 +++++++++ .../tests/e2e/dashboard/po-status-badges.js | 303 ++++++++++++++++++ .../tests/e2e/export-gate.spec.ts | 178 ++++++++++ App/pelagia-portal/tests/e2e/helpers/auth.js | 17 + App/pelagia-portal/tests/e2e/helpers/login.ts | 63 ++++ .../tests/e2e/inventory/cart-icon.spec.ts | 186 +++++++++++ .../tests/e2e/inventory/items-tags.spec.ts | 252 +++++++++++++++ .../e2e/mobile/accounts-payments.spec.ts | 141 ++++++++ .../tests/e2e/mobile/bottom-nav.spec.ts | 116 +++++++ .../tests/e2e/mobile/desktop-required.spec.ts | 121 +++++++ .../e2e/mobile/manager-approvals.spec.ts | 153 +++++++++ .../tests/e2e/notification-bell.spec.ts | 100 ++++++ .../tests/e2e/partial-receipt.spec.ts | 152 +++++++++ .../tests/e2e/payment-history.spec.ts | 85 +++++ .../tests/e2e/po-submit-button.spec.ts | 57 ++++ App/pelagia-portal/tests/e2e/profile.spec.ts | 89 +++++ App/pelagia-portal/tests/e2e/rebrand.spec.ts | 56 ++++ .../tests/e2e/vendor-auto-verify.spec.ts | 89 +++++ 20 files changed, 2443 insertions(+), 2 deletions(-) create mode 100644 App/pelagia-portal/tests/e2e/admin-bordered-buttons.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/approvals-edit-highlight.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/dashboard/po-status-badges.js create mode 100644 App/pelagia-portal/tests/e2e/export-gate.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/helpers/auth.js create mode 100644 App/pelagia-portal/tests/e2e/helpers/login.ts create mode 100644 App/pelagia-portal/tests/e2e/inventory/cart-icon.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/inventory/items-tags.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/mobile/accounts-payments.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/mobile/bottom-nav.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/mobile/desktop-required.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/mobile/manager-approvals.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/notification-bell.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/partial-receipt.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/payment-history.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/po-submit-button.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/profile.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/rebrand.spec.ts create mode 100644 App/pelagia-portal/tests/e2e/vendor-auto-verify.spec.ts diff --git a/App/pelagia-portal/playwright.config.ts b/App/pelagia-portal/playwright.config.ts index 2a9453e..11f65b6 100644 --- a/App/pelagia-portal/playwright.config.ts +++ b/App/pelagia-portal/playwright.config.ts @@ -4,8 +4,8 @@ export default defineConfig({ testDir: "./tests/e2e", fullyParallel: true, forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - workers: process.env.CI ? 1 : undefined, + retries: process.env.CI ? 2 : 1, + workers: process.env.CI ? 1 : 2, reporter: "html", use: { baseURL: "http://localhost:3000", diff --git a/App/pelagia-portal/tests/e2e/admin-bordered-buttons.spec.ts b/App/pelagia-portal/tests/e2e/admin-bordered-buttons.spec.ts new file mode 100644 index 0000000..467f4e8 --- /dev/null +++ b/App/pelagia-portal/tests/e2e/admin-bordered-buttons.spec.ts @@ -0,0 +1,128 @@ +/** + * User stories covered: Feature 10 — Admin bordered buttons + * - On /admin/vendors, Edit and Delete buttons have visible borders (not plain text links) + * - Same checks apply to /admin/users, /admin/vessels, /admin/accounts, /admin/products + * + * The fix replaced text-link style buttons with bordered buttons. We check that action + * buttons in admin tables do NOT have link-only styling (no underline-only appearance) + * and DO have a border or background CSS class. + * + * Selector strategy: Admin action buttons are rendered by EditVendorButton, ConfirmDeleteButton. + * We look for