EA QA Report Mar 20 2026 · localhost:3000 · 1440×900
71
Total Tests
67
Passed
4
Failed
8
Bugs
12
Fixed

Reported Bugs

+ Add Bug

Test Plans

E2E-1: Customer CRUD 5 tests
E2E-1.1 Create customer with full details
E2E-1.2 Submit without email shows validation
E2E-1.3 Cancel returns to customer list
E2E-1.4 Detail page has expected tabs
E2E-1.5 Edit customer and save
E2E-2: Quote Full Lifecycle 10 tests
E2E-2.1 New Quote shows type selector
E2E-2.2 Select customer in wizard
E2E-2.3 Configure duration and currency
E2E-2.4 Add product item
E2E-2.5 Save Draft button state
E2E-2.6 Save & Generate creates quote and redirects
E2E-2.7 Navigate to a quote detail page
E2E-2.8 Mark as Sent and verify persistence
E2E-2.9 Reject and verify persistence
E2E-2.10 Duplicate from dropdown
E2E-3: Quote Wizard Validation 2 tests
E2E-3.1 Empty wizard shows validation messages
E2E-3.2 Save Draft disabled without customer
E2E-4: Quote Bulk Delete 1 test
E2E-4.1 Select and bulk delete quotes
E2E-5: Protected Leads CRUD 3 tests
E2E-5.1 Add protected domain
E2E-5.2 Search filters to created domain
E2E-5.3 Delete domain with confirmation
E2E-6: Invoice Actions 1 test
E2E-6.1 View invoices for a customer
E2E-7: Coupon Code Validation 1 test
E2E-7.1 Invalid coupon shows error
E2E-8: Pending Charges 9 tests
E2E-8.1 Navigate to Pending Charges page
E2E-8.2 Empty state without customer selection
E2E-8.3 Select customer and view charges
E2E-8.4 Data grid columns are present
E2E-8.5 Select charges via checkboxes
E2E-8.6 Create Invoice button shows confirmation modal
E2E-8.7 Export CSV button works with selection
E2E-8.8 Clear selection button works
E2E-8.9 Row action dropdown has Create Invoice option
E2E-9: Quote Convert Actions 4 tests
E2E-9.1 Quote detail page shows Convert dropdown for sent/accepted quotes
E2E-9.2 Convert dropdown shows both options
E2E-9.3 Convert & Invoice shows confirmation dialog
E2E-9.4 Convert is not shown for draft/closed quotes
E2E-10: List Pages with Customer Selection 6 tests
E2E-10.1 Invoices page renders and loads data with customer
E2E-10.2 Licenses page renders and loads data with customer
E2E-10.3 Quotes page renders and loads data with customer
E2E-10.4 Pending Charges page renders correctly
E2E-10.5 Selected customer persists across page reload
E2E-10.6 Customer selection persists when navigating between pages
E2E-11: Quote Full Lifecycle 5 tests
E2E-11.1 Create customer for lifecycle test
E2E-11.2 Enter Quote Wizard, add product, Save & Generate
E2E-11.3 Mark as Sent and verify status persists
E2E-11.4 Quote detail shows line items and customer info
E2E-11.5 Duplicate quote creates new draft
E2E-12: Pending Charges — Create Invoice 3 tests
E2E-12.1 Navigate and select customer with pending charges
E2E-12.2 Select charge, confirm Create Invoice modal
E2E-12.3 Verify invoice appears in Invoices list
E2E-13: Data Persistence 4 tests
E2E-13.1 Create customer, navigate away, come back, still exists
E2E-13.2 Create quote for customer, verify it appears on customer detail
E2E-13.3 Edit customer company name, reload, verify persistence
E2E-13.4 Customer filter persists across pages
E2E-14: Coupons List 4 tests
E2E-14.1 Coupons list page loads with data grid
E2E-14.2 Search filter works
E2E-14.3 Status filter works
E2E-14.4 Click coupon row navigates to edit page
E2E-15: Create Coupon — Campaign Scenarios 8 tests
E2E-15.1 Validation: empty form rejected
E2E-15.2 Conference Promo (Individuals Only)
E2E-15.3 Spring Deal (Private Users Only)
E2E-15.4 Paged Out! Magazine Promo (public code)
E2E-15.5 IDA Free Upgrade Incentive (new individual only)
E2E-15.6 Corporate Upgrade Push (companies only, non-academic)
E2E-15.7 Academic Classroom Promo (academics only)
E2E-15.8 Reseller Partner Internal Discount (resellers only)
E2E-15b: Create Coupon — Specific Item Targeting 3 tests
E2E-15b.1 Apply On "Each Specified Item" shows item selector
E2E-15b.2 Can switch Plans to "Specific" and see plan checkboxes
E2E-15b.3 Addons section shows correctly
E2E-16: Edit Coupon Targeting 1 test
E2E-16.1 Edit page loads with fields disabled

Automation Docs

Running Tests

# Start the dev server first
npm run dev

# Run the full E2E test suite (Jest + Playwright)
npm run test:e2e

# Run a specific test file
npx jest --config tests/jest.e2e.config.cjs tests/e2e/customers.test.cjs

# Run standalone scenario scripts
node tests/run-all-scenarios.cjs
node tests/deep-dive-scenarios.cjs
node tests/e2e-crud.cjs
node tests/e2e-csv-exports.cjs

Test Files

  • tests/e2e/customers.test.cjs Customer CRUD operations
  • tests/e2e/quotes.test.cjs Quote lifecycle, wizard validation, detail actions
  • tests/e2e/bulk-delete.test.cjs Quote bulk delete flow
  • tests/e2e/protected-leads.test.cjs Protected leads CRUD
  • tests/e2e/invoices-coupons.test.cjs Invoice actions and coupon validation
  • tests/e2e/pending-charges.test.cjs Pending charges page interactions
  • tests/e2e/pending-charges-crud.test.cjs Create invoice from pending charges
  • tests/e2e/quote-convert.test.cjs Quote convert actions
  • tests/e2e/list-pages.test.cjs List pages with customer selection and persistence
  • tests/e2e/quote-lifecycle.test.cjs Full quote lifecycle end-to-end
  • tests/e2e/data-persistence.test.cjs Data persistence across navigation
  • tests/e2e/coupons.test.cjs Coupon list, create campaigns, item targeting, edit

Authentication Bypass

const { chromium } = require('playwright');
const { createAuthenticatedPage } = require('./scripts/playwright-helpers.cjs');

const { browser, page } = await createAuthenticatedPage(chromium, {
  email: 'admin@hex-rays.com',
  baseUrl: 'http://localhost:3000',
});

// Take a full-page screenshot
await page.screenshot({ path: '/tmp/screenshot.png', fullPage: true });
await browser.close();

Configuration

# Jest config: tests/jest.e2e.config.cjs
# Playwright helpers: scripts/playwright-helpers.cjs
# Screenshots saved to: /tmp/ea-screenshots/
# Bug reports saved to: /tmp/ea-bugs-*.json