ABC Membership & Dues — E2E Test Scripts

Step-by-step test scripts that trace realistic workflows across feature areas. Each test tells QA exactly what to do, what to expect, and what bugs to watch for.

10 End-to-End Flows 130+ Verification Steps Interactive Tracking
Overall: 0%
0 Pass 0 Fail 0 Skip
Select a Test Flow (10 total)

How to Use These Test Scripts

These are end-to-end tests designed to catch the integration bugs that slip through when only individual tickets are tested. Each test traces a realistic workflow a Chapter staff member or National user would actually perform.

For Each Test Script

1. Read the Preconditions — make sure your test environment is set up correctly before you start.

2. Follow the Steps in Order — check each box as you complete it. The orange "Expected" notes tell you what should happen.

3. Mark the Result — use the Pass/Fail/Skip buttons on each test case header.

4. Check the "Bug Risk" boxes — these are known areas where bugs are most likely to appear. Pay extra attention.

5. Add Notes — use the notes field to document any bugs, unexpected behavior, or questions.

Recommended Test Order

Run these in order. Later tests assume data created by earlier tests.

CRITICAL E2E-1 Full Happy Path (Dues Year → Batch → Pay → Monthly)
CRITICAL E2E-2 New Member Lifecycle (Day-to-Day Invoice Creation)
CRITICAL E2E-3 Portal Payment Flow (Member Pays Online)
HIGH E2E-4 Prorated Second Year Renewal
HIGH E2E-5 15-for-12 Program Flow
HIGH E2E-6 Start-Up Contractor Discount Lifecycle
HIGH E2E-7 Adjusted Invoice & Credit Flow
MEDIUM E2E-8 Chapter-Only Member Flow
CRITICAL E2E-9 National Monthly Processing Queue
HIGH E2E-10 Boundary Conditions & Negative Tests

E2E-1: Full Renewal Happy Path

The most important test. Traces the complete annual renewal lifecycle from Dues Year Setup through batch invoicing, payment, and monthly submission to National. This is what a Chapter does every year for every member.

Dues Year Setup Batch Invoicing Payment Monthly Process CRITICAL PRIORITY
TC-1.1 Create New Dues Year from Previous YearAuto

Preconditions

  • Logged in as Chapter Staff with Dues Admin permissions
  • Previous dues year (e.g. 2025) exists with categories, schedules, additional line items, memos, discounts, and emails configured
  • New dues year (e.g. 2026) does NOT yet exist
  1. Navigate to Dues → Admin → Dues Year Setup
  2. Select the new dues year (2026) from the year dropdown
    Expected: Since the year has no data, the "Copy from Previous Year" function should appear. Green/red icons should indicate which tables have data (all should be red/empty).
  3. Click "Create New Dues Year" / Copy from Previous Year
    Expected: System copies ALL configurations from 2025: Schedules, Categories, Additional Line Items, Invoice Memos, Discount-If-Paid-By Rules, and Dues-Related Emails. Green icons should now appear for all copied tables.
  4. Verify Categories & Schedules copied correctly — spot-check 3-4 categories. Confirm Chapter $, State $, Other $, National $, Total $ all match 2025 values
    Expected: All dollar amounts match. National $ amounts should be locked (non-editable at chapter level).
  5. Verify Additional Line Items copied — confirm FEA, TCEF, PAC, and any chapter-defined items are present with correct Billing IDs, amounts, and new/renewal/adjusted flags
  6. Verify Discount-If-Paid-By windows copied — confirm date ranges, flat vs %, and by-total vs by-category settings
    Expected: Date windows should reflect the new year's dates (not last year's). If they copy as-is, note this — dates may need manual update.
  7. Verify Invoice Memos copied — confirm memo names, text content, and active/inactive status
  8. Check if a red alert message appears indicating National dues amounts haven't been applied yet
    Expected: If National has updated their amounts for 2026, a red alert should display. Use the split-button to "Apply National Dues Change" — choose "Update Increase Total" or "Update Reduce Chapter" and verify the math.

Key Validations

  • All 6 table types copy successfully (Schedules, Categories, Lines, Memos, Discounts, Emails)
  • National $ amounts remain locked after copy
  • Category National Category field (decimal numbers) copies correctly
  • Schedule numbers preserved from previous year

Bug Risk Areas

  • National $ amounts becoming editable after copy
  • Decimal values in National Category field truncating or rounding
  • Discount date windows copying with last year's dates instead of updating
  • Copy failing silently for one table type while others succeed
TC-1.2 Run Batch Invoicing — Full Wizard (Steps 0-3)Hybrid

Preconditions

  • TC-1.1 completed — new dues year is fully configured
  • Chapter has at least 5-10 active member companies with Paid invoices in the prior year AND no invoice yet in the new year
  • At least 1 member with each of: different categories, different schedules
  1. Navigate to Batch Invoicing. Select the new dues year.
    Expected: Year defaults to the "Dues Start Year" chapter default. If Dues Year not fully set up, an error should block progress.
  2. Step 0: Click "Run Audits"
    Expected: Audits run (Invalid National Categories, Invalid Chapter-Only XREF, National Member Category Issue, Mismatched Schedule/Category, Fix Start-Up Contractor, Start-Up Contractor Review, Not-Invoiced-Yet, Not Paid/Processed 15-for-12, Joined in Prior Year Prorates, Adjusted Invoices, Duplicate Invoices). If errors found, error count + link shown. If none, proceed to Step 1.
  3. If audits show errors, click an audit link and verify it opens in a new tab with the audit detail screen
    Expected: Audit opens in new tab showing affected records. For audits that support on-screen corrections (Invalid National Categories, Invalid Chapter Only XREF, National Member Category Issue, Missing Emails), verify corrections can be made directly.
  4. Click "Continue" to proceed to Step 1 (audits do NOT need to pass)
  5. Step 1: Leave defaults (Type = Member, Status = Active). Click to load the batch.
    Expected: Table populates with members who have Paid prior-year invoices AND no current-year invoice. 15-for-12 renewals should NOT appear. Invalid Chapter Only, Invalid National Category, and Start-Up Contractor failures should be excluded with error messages and counts.
  6. Verify the "Last Year's Count" comparison. Note the count badge and confirm it shows the difference from last year's batch.
  7. Search for a specific company by name. Verify amounts: Chapter $, State $, Other $, National $ match the Dues Year Setup category amounts for that member's assigned category.
  8. Try the "Compare to Last Year" report — verify it shows companies from last year with their active/dropped status.
  9. Export to Excel by Category — verify the downloaded file has the dues year in the filename and only selected records.
  10. Step 2: Review the left-column fields. Verify defaults: Term on Invoice = "Invoice", Statement Line = "Please Pay Promptly", Address = Mailing, Category Order = High to Low, Print Which = "List Categories from Current Up"
    Expected: Each dropdown/combobox field should show its default. Fields like "Term on Invoice" and "Statement Line" should allow both dropdown selection AND manual text input (combobox pattern).
  11. On Step 2, select Additional Line Items, Memos, and Discounts from the right column. Verify the lookups search by both Name and Group.
  12. Click "Preview / Print Invoices" — verify PDF downloads without creating DB records
    Expected: PDF downloads. Go back to Dues Landing Screen and confirm no new invoices appear — records are still temporary at this point.
  13. Step 3: Click "Create Invoices"
    Expected: Invoice records are written to the database. Invoice numbers assigned in format YY-COMPANYID + R (e.g., 26-12345R). Invoices appear on Dues Landing Screen with status Open.
  14. Go to Dues Landing Screen. Filter by new year + Open + Renewal. Verify all batch invoices are present with correct amounts.
  15. Open one invoice — verify the Invoice History fly-out shows the "Created" record with date/time.

Key Validations

  • Only eligible members appear in batch (Paid prior year, no current year invoice)
  • Invoice amounts match Dues Year Setup categories exactly
  • Preview/Print does NOT create DB records (Steps 1-2 are temporary)
  • Step 3 commits all invoices to DB at once with correct status and numbering
  • Batch "Last Edited Date" updates appropriately

Bug Risk Areas

  • Preview/Print accidentally creating invoice records in the database
  • Members without Paid prior year invoices appearing in batch
  • 15-for-12 renewals incorrectly included in batch
  • Invoice number format wrong (especially the type indicator)
  • Dollar amounts not matching category setup (especially after National dues changes)
  • Temporary batch files not being cleaned up after Step 3
TC-1.3 Pay Invoice Offline & Verify Monthly Dues ScreenAuto

Preconditions

  • TC-1.2 completed — Open renewal invoices exist from batch
  • At least 3 Open invoices available to pay
  1. Open an invoice from the Dues Landing Screen. Click "Pay Invoice" (offline — for check payment).
    Expected: Invoice status changes to Paid. Paid Date recorded. Payment Type = offline/check.
  2. Verify the contact record was updated: check Dues History and Last Year Paid field
  3. Pay 2 more invoices with different paid dates (one this month, one last month if possible)
  4. Navigate to Monthly Dues → Chapter Monthly Dues Screen. Select the current month/year.
    Expected: Paid invoices for this month appear automatically. Dues Month Chapter Status shows "Open" (not yet submitted). Totals row at bottom shows correct sums for National/State/Chapter/Additional lines.
  5. Verify the invoice paid last month appears on that month's screen (switch month)
  6. Download the Summary report (Monthly Dues Statement PDF). Verify amounts match the screen totals. Confirm PAC is NOT included in this report.

Key Validations

  • Paid invoices automatically appear on Monthly Dues screen for the correct month
  • Contact record updated with dues history and last year paid
  • Totals row sums correctly
  • PAC excluded from Monthly Dues Statement

Bug Risk Areas

  • Invoice appearing on wrong month's screen (paid date vs. created date confusion)
  • Contact record not updating after payment
  • PAC amounts incorrectly included in Monthly Dues Statement
TC-1.4 Submit to National & Monthly Processing QueueAuto

Preconditions

  • TC-1.3 completed — paid invoices exist on Monthly Dues screen
  • Logged in as Chapter Staff
  1. On the Monthly Dues screen, click "Submit to National"
    Expected: Submission audits run (Invalid Invoice Year, Invalid Member Type, Invalid New/Renew Member, Invalid Category, Non-Paying National Member, Invalid Chapter Only). If errors: presented like batch invoicing audits with remediation links. If no errors: success message.
  2. Confirm the submission was successful. Check that Dues Month Chapter Status changes from "Open" to "Submitted" (locked)
    Expected: Status = Submitted. The monthly dues screen should be locked — no more changes allowed at chapter level.
  3. Verify a PDF auto-downloads (Monthly Dues Statement / National report snapshot)
  4. Switch to National Staff login. Navigate to Monthly Processing Queue. Select the current month/year.
    Expected: The chapter's submission appears in the queue with Status = "Submitted" and the Date Submitted populated.
  5. Click the Chapter name to drill in. Verify: System of Truth, Contact info, Report table with clickable report names, Issues status, Notes
  6. Click a report link — verify it opens in a new tab
  7. Back on the queue, update the chapter's status to "Approved"
    Expected: Status updates. Auto-triggers a sign-off email/request to the Chapter contact.
  8. Select the chapter and click "Publish Invoices to WF" (Wells Fargo)
    Expected: If already published for this month, a warning appears. Otherwise, publishes successfully. National Status should reflect Published.

Key Validations

  • Chapter → Submitted → National reviews → Approved → Published lifecycle works end-to-end
  • Chapter screen locks after submission (no edits allowed)
  • National can drill into chapter detail and view reports
  • Status transitions work in correct order
  • Sign-off email triggered when status moves to Approved

Bug Risk Areas

  • Chapter screen not locking after submission (allowing edits to submitted data)
  • Status changing out of order (e.g., Open → Approved, skipping Submitted)
  • Sign-off email not being triggered
  • Publishing to WF without warning when already published

E2E-2: New Member Lifecycle

Tests the day-to-day process of bringing a new member company into the system: creating a New invoice, paying it, and verifying the data flows correctly through the rest of the system.

Day-to-Day Invoice Payment Email Monthly Process CRITICAL PRIORITY
TC-2.1 Create New Invoice for First-Time MemberAuto

Preconditions

  • Dues year fully set up for current year
  • A company record exists that has never been a member (no prior invoices)
  • Company has a joined date within the current invoice year
  • Company is assigned to a valid Dues Category
  1. Navigate to Create Dues Invoice. Select the company name. Select Invoice Type = New (N).
    Expected: Form populates with category from the member record. Dollar amounts (Chapter/State/Other/National) auto-fill from the Dues Year Setup for that category. Original amounts should NOT be editable for New invoices.
  2. Verify the Invoice Number format is YY-COMPANYID + N (e.g., 26-99001N)
  3. Verify that Additional Line Items flagged for "new invoices" appear. Items flagged only for renewal or adjusted should NOT appear.
  4. Save/Create the invoice. Verify it appears on Dues Landing Screen with Status = Open, Type = New
  5. Try to create another New invoice for the same member and year
    Expected: System blocks this — "Cannot add New or Renewal if one already exists for the member/year (any status)"
  6. Negative test: Try to create a New invoice for a member whose joined date is NOT in the current year
    Expected: System blocks — "Cannot add New if member joined date not within the invoice year"

Key Validations

  • Category-driven amounts populate automatically and cannot be manually overridden on New type
  • Only "new invoice" flagged additional line items appear
  • Duplicate invoice prevention works
  • Joined date validation works

Bug Risk Areas

  • Original amounts being editable on New invoices
  • Additional line items showing regardless of new/renewal/adjusted flags
  • Duplicate invoice validation not checking all statuses (Open, Paid, Dropped)
TC-2.2 Pay New Invoice & Email Invoice FlowHybrid

Preconditions

  • TC-2.1 completed — Open New invoice exists
  1. Open the new invoice. Click "Email Invoice"
    Expected: Email form shows configurable Reply-To, From (limited to National-approved list), CC, BCC, Body Content. Body includes invoice summary (not just attachment). Links to No-Login Payment Portal and Portal included.
  2. Send the email. Verify the Invoice History fly-out updates with: Date Sent, Sent Type (Email), and the email address.
  3. Now pay the invoice offline (check payment). Mark as Paid.
    Expected: Status → Paid. Paid Date, Payment Type (check), recorded. Contact record updated with Dues History + Last Year Paid.
  4. Verify the invoice shows on the Monthly Dues screen for the paid month as a "New" type invoice
  5. Check the Monthly Dues Totals Row — new member count should increment, dollar totals should include this invoice

Bug Risk Areas

  • Email "From" allowing addresses not on the National-approved list
  • Invoice History not recording the email send event
  • No-Login Portal link missing from email body
  • New member count on Monthly Dues totals not incrementing
TC-2.3 Renewal Validation — No Prior Paid InvoiceAuto

Preconditions

  • A company with NO paid invoice for the prior year (either never invoiced, or invoice still Open/Dropped)
  1. Navigate to Create Dues Invoice. Select this company. Try to create a Renewal (R) invoice.
    Expected: System blocks — "Cannot add Renewal if no paid invoice exists for prior year." This is a critical data integrity rule (Line #64 in Day-to-Day Invoice Management docs).
  2. Also try with a company that has a Dropped prior year invoice (not Paid)
    Expected: Same block — Dropped is not Paid, so renewal should still be prevented.
  3. Try with a company that has an Open prior year invoice (not Paid)
    Expected: Same block — Open is not Paid.

Bug Risk Areas

  • System only checking for "invoice exists" instead of specifically "Paid invoice exists"
  • Dropped invoices counting as "paid" for renewal eligibility

E2E-3: Portal Payment Flow

Tests the member-facing payment experience through both the no-login link and the authenticated portal, then traces the data back to the Chapter side and monthly reporting.

Portal Payment Gateway Post-Payment Actions Monthly Process CRITICAL PRIORITY
TC-3.1 No-Login Invoice Payment (Email Link)Hybrid

Preconditions

  • Chapter has "No-Login Invoice Payment" setting = ON
  • An Open invoice exists for a member. Invoice email has been sent containing the no-login link.
  • Payment gateway (Authorize.net or configured provider) is active in test mode
  1. Click the no-login payment link from the invoice email
    Expected: reCAPTCHA challenge appears. After passing, the invoice review page (Step 1) loads showing: member info, invoice #, date, category amount, voluntary contributions (opt-in/opt-out), total amount due, print button, and pay button.
  2. Verify the footer text about tax deductibility — if the chapter has a % not deductible configured, the specific text with that % should appear
  3. Verify early-pay discounts auto-apply if the current date falls within a configured discount window
  4. Adjust a voluntary opt-in contribution (change amount or leave at $0). Verify the total updates.
  5. Click "Pay" — proceed to Step 2 payment form. Select Credit Card. Enter test card details and submit.
    Expected: Payment processes. Duplicate payment prevention should block double-clicks. Credit card numbers NOT stored in database — only Transaction ID and date/time from gateway stored.
  6. After payment success, verify the 5 post-payment actions:
    Expected: (1) Invoice Status → "Paid" in Chapter Site and Portal. (2) Payment Amount, Paid Date, Paid Type (online), Paid Method (CC), Voluntary Contributions recorded. (3) Contact record updated: Dues History + Last Year Paid. (4) Email to Chapter (CC/BCC per chapter config). (5) Email to paying member.
  7. Log into Chapter Staff and verify the invoice shows Paid on the Dues Landing Screen with Payment Type = Online, Method = CC
  8. Go to Monthly Dues screen and verify this portal payment automatically appears for the correct month
  9. Try the no-login link again for this already-paid invoice
    Expected: Message that invoice is already paid, with a link to the Portal.

Key Validations

  • Portal invoices must be paid in full (no partial payment option)
  • Credit card numbers are NOT stored in database
  • All 5 post-payment actions fire correctly
  • Payment data flows to Monthly Dues screen automatically
  • Chapter must still manually submit to National (this is NOT automatic)

Bug Risk Areas

  • reCAPTCHA not appearing for no-login access
  • Early-pay discounts not auto-applying based on current date
  • Duplicate payment on double-click
  • Credit card numbers being stored in the database
  • Post-payment emails not sending (to member or to chapter)
  • Contact record not updating after portal payment
  • Payment appearing on wrong month in Monthly Dues screen
TC-3.2 Authenticated Portal Payment (ACH)Hybrid

Preconditions

  • A portal user exists with Level 3 (Member Portal Admin) permissions
  • An Open invoice exists for this member's company
  1. Log into the Member Portal. Navigate to the Open Invoices tab (should be default tab).
    Expected: Open/unpaid invoices displayed. Columns: Invoice Type, Invoice Date, Description, Amount, Invoice Status. Actions: View, Print/Download.
  2. Click "View" on the invoice — confirm it goes to the payment flow (same review page as no-login, but without reCAPTCHA since already logged in)
  3. Pay via ACH. Enter test bank details and submit.
    Expected: Payment processes. Paid Method recorded as ACH. Same 5 post-payment actions fire.
  4. Navigate to Invoice History tab. Verify the paid invoice appears with Paid Date, Paid Type, Paid Method (ACH).
  5. Try Export to Excel from both Open Invoices and Invoice History tabs

Bug Risk Areas

  • reCAPTCHA incorrectly appearing for authenticated portal users
  • ACH payment method not recording correctly (showing as CC instead)
  • Invoice History not reflecting correct date filters (30/60/90 days, 6 months, 1 year)
TC-3.3 No-Login Security — Failed Attempts LockoutAuto

Preconditions

  • No-Login Payment enabled
  1. Access the no-login payment link. Fail the reCAPTCHA 5 times
    Expected: After 5 failed attempts, user is locked out for 30 minutes.
  2. Verify the lockout message displays clearly
  3. Confirm that an already-logged-in portal user does NOT see reCAPTCHA and is NOT affected by these lockout rules

E2E-4: Prorated Second-Year Renewal

Tests the proration calculation for members who joined mid-year. This is one of the most complex math scenarios in the system.

Day-to-Day Invoice Proration Math 2nd Year Renewal HIGH PRIORITY
TC-4.1 Prorated Renewal — Member Joined in JuneAuto

Preconditions

  • A member company that joined in June of the prior year
  • That member has a Paid New invoice for their first year
  • Current year dues are set up
  • Know the category amounts: e.g., National = $1,200, Chapter = $600, State = $300
  1. Create a Renewal invoice for this member
    Expected: System detects this is a 2nd-year renewal for a member who joined mid-year. Invoice is tagged as "Prorated". Proration formula: (amount / 12) × (12 - joinMonth + 1). For June (month 6): (amount / 12) × 7.
  2. Verify the math on each line:
    Original = full year amount (e.g., National = $1,200)
    Total = prorated amount = ($1,200 / 12) × 7 = $700
    Credit = Original - Total = $500
    Do the same check for Chapter and State amounts.
    Expected: Original shows full-year. Credit shows the proration discount. Total shows what's actually owed. Record should be flagged as "prorated."
  3. Pay the prorated invoice. Then create a 3rd year renewal.
    Expected: 3rd year should be a standard Jan-Dec renewal at FULL amounts (no proration). No Credit line.

Bug Risk Areas

  • Proration formula using wrong month number (0-indexed vs 1-indexed)
  • Rounding errors on division (especially with odd amounts)
  • 3rd year renewal still showing prorated amounts
  • Proration not applying to all dollar buckets (Chapter/State/National) consistently
  • Record not being tagged as "prorated"
TC-4.2 Prorated Renewal — Edge: Joined in January vs DecemberAuto
  1. January joiner: Create 2nd year renewal
    Expected: (amount / 12) × (12 - 1 + 1) = full amount. January joiners should effectively get full-year renewal (12/12 months). Confirm no Credit line (or Credit = $0).
  2. December joiner: Create 2nd year renewal
    Expected: (amount / 12) × (12 - 12 + 1) = 1/12 of annual amount. This is the minimum proration. But note: December joiners may also be eligible for 15-for-12 — these are different flows. Make sure the system doesn't confuse them.

Bug Risk Areas

  • January joiner's 2nd year renewal showing proration instead of full amount
  • December joiner proration conflicting with 15-for-12 eligibility logic
  • Off-by-one in month calculation

E2E-5: 15-for-12 Program Flow

Tests the special "join in Oct/Nov/Dec, get 15 months for the price of 12" program from initial invoice through the $0 renewal.

Day-to-Day Invoice 15-for-12 Rules $0 Renewal HIGH PRIORITY
TC-5.1 15-for-12 — New Invoice Triggers $0 RenewalAuto

Preconditions

  • Chapter has 15-for-12 setting enabled
  • A new member company with join date in October
  1. Create a New invoice for the October joiner
    Expected: After creating, system asks "Would you like to create next year's $0 invoice?" (or similar prompt).
  2. Click "Yes" to create the $0 renewal
    Expected: A second invoice is created for the NEXT year with: Original = full year amounts, Credit = full year amounts (zeroing it out), Total = $0. Status = Paid. Paid Date = same as the Year 1 invoice paid date. Invoice flagged as "15-for-12".
  3. Verify both invoices on the Dues Landing Screen:
    • Year 1: New invoice at full price
    • Year 2: Renewal invoice at $0 (flagged 15-for-12)
  4. Check the Company Dues History fly-out — both invoices should appear
  5. Verify this member does NOT appear in the next year's batch invoicing (they already have a renewal for that year)

Key Validations

  • $0 renewal has Original amounts filled but Credits equal to Originals (net $0)
  • $0 renewal is auto-marked as Paid with same paid date as Year 1 invoice
  • Invoice flagged as 15-for-12
  • Member excluded from next year's batch (already has an invoice)

Bug Risk Areas

  • $0 renewal not being marked as Paid (leaving it Open)
  • Credit amounts not matching Original (creating a non-zero invoice)
  • Member still appearing in next year's batch invoicing
  • 15-for-12 flag not being set
  • System offering 15-for-12 for non-eligible months (Jan-Sep)
TC-5.2 15-for-12 — November and December JoinersAuto
  1. Repeat TC-5.1 for a November joiner — same expectations
  2. Repeat TC-5.1 for a December joiner — same expectations
  3. Try creating a New invoice for a September joiner
    Expected: System should NOT offer the 15-for-12 option. Only Oct/Nov/Dec are eligible.
  4. If the chapter's 15-for-12 setting is OFF, try with an October joiner
    Expected: System should NOT offer 15-for-12 when the chapter setting is disabled.

E2E-6: Start-Up Contractor Discount Lifecycle

Tests the 24-month start-up contractor discount through all 3 years, including the hybrid Year 3 calculation.

Start-Up Contractor 24-Month Window Hybrid Calculation HIGH PRIORITY
TC-6.1 Start-Up Contractor — Year 1 & Year 2Auto

Preconditions

  • A company flagged as Start-Up Contractor
  • Company has BOTH a contractor category (e.g., Cat A, $2,400/yr) AND a start-up category (e.g., Start-Up, $600/yr) on record
  • Joined date = March of prior year (so still within 24-month window)
  1. Create Year 1 New invoice for this start-up contractor
    Expected: Original = full contractor rate ($2,400). Total = start-up rate ($600). Credit = difference ($1,800). Invoice flagged as "start-up".
  2. Pay the Year 1 invoice. Then create Year 2 Renewal.
    Expected: Same structure as Year 1 — Original at contractor rate, Total at start-up rate, Credit = difference. Still within 24-month window.
TC-6.2 Start-Up Contractor — Year 3 Hybrid CalculationAuto

Preconditions

  • Same start-up contractor from TC-6.1 (joined March)
  • Year 2 invoice is Paid
  • 24-month window expires in March of Year 3 (still eligible for Jan-Mar, not eligible Apr-Dec)
  1. Create Year 3 Renewal for this start-up contractor
    Expected: Hybrid calculation. Start-up rate for eligible months (Jan-Mar = 3 months). Contractor rate for remaining months (Apr-Dec = 9 months). Total = (start-up monthly × 3) + (contractor monthly × 9). Credit = Original (full contractor) - Total.
  2. Calculate the expected amounts manually:
    • Contractor monthly = $2,400 / 12 = $200
    • Start-up monthly = $600 / 12 = $50
    • Total = ($50 × 3) + ($200 × 9) = $150 + $1,800 = $1,950
    • Credit = $2,400 - $1,950 = $450
    Verify the system matches.
  3. Now test a January joiner creating a Year 3 renewal
    Expected: 24 months expired by January of Year 3. Full contractor rate, NO discount. Original = Total, Credit = $0.

Bug Risk Areas

  • Hybrid calculation splitting months incorrectly
  • January joiner still getting a discount in Year 3
  • Rounding errors in monthly amount calculations
  • System not properly checking the 24-month window boundary

E2E-7: Adjusted Invoice & Credit Flow

Tests corrections via Adjusted invoices, including the special rule that National dues can only be credited on Adjusted type invoices.

Adjusted Invoices Credits National Dues Rules HIGH PRIORITY
TC-7.1 Create Adjusted Invoice with National CreditAuto

Preconditions

  • A member with a Paid New or Renewal invoice
  • Need to change the member's category (e.g., company reclassified to lower tier)
  1. Create an Adjusted (A) invoice for the member
    Expected: Invoice # format includes A suffix: e.g., 26-12345A1. System auto-links to the correct original invoice (knows if original was N or R). "Related Invoice" field available.
  2. Verify you CAN credit National dues on this Adjusted invoice
    Expected: National credit allowed on Adjusted type. Credit must be for the full National amount (partial National credit not allowed).
  3. Negative test: Try to credit National dues on a New or Renewal invoice
    Expected: System blocks — "Cannot manually credit National dues on New/Renewal" (Line #77).
  4. Create a second Adjusted invoice for the same member
    Expected: Invoice # increments: 26-12345A2

Bug Risk Areas

  • National credit being allowed on New/Renewal invoices
  • Partial National credit being accepted (should be full amount or nothing)
  • Adjusted invoice sequence number (A1, A2, A3) not incrementing properly
  • Auto-link to original invoice pointing to wrong invoice
TC-7.2 Partial Payment & Balance Due FlowAuto
  1. Take an Open invoice. Record a partial payment.
    Expected: System records partial payment. Generates a new invoice for the remaining balance. Amount already paid shows in the credit column.
  2. Verify that National dues cannot be partially paid — must be full amount or $0
    Expected: If partial pay doesn't cover full National amount, National should be $0 on this payment and full amount on the balance due invoice.
  3. Pay the remaining balance. Verify both payments reflected in the company's dues history.

Bug Risk Areas

  • National dues being split across partial payments
  • Balance due invoice showing wrong remaining amount
  • Credit column not reflecting prior partial payment

E2E-8: Chapter-Only Member Flow

Tests the special case where a member pays National dues through a different chapter. This chapter only collects chapter + state dues.

Chapter-Only XREF Validation MEDIUM PRIORITY
TC-8.1 Chapter-Only Invoice & XREF ValidationAuto

Preconditions

  • A company that is a chapter-only member (pays National through another chapter)
  • Test with both: valid XREF (cross-reference to primary chapter) and invalid/missing XREF
  1. Create an invoice for a chapter-only member with a valid XREF
    Expected: Invoice created with chapter + state dues only (no National portion). Can be created and paid normally.
  2. Create an invoice for a chapter-only member with a missing/invalid XREF
    Expected: Invoice CAN be created. But when you try to PAY it, the system should block — "Cannot pay if XREF missing/invalid" (exception: partial pay is allowed).
  3. Try a partial payment on the invalid-XREF invoice
    Expected: Partial pay IS allowed even with invalid XREF.
  4. Verify chapter-only members are correctly identified in Batch Invoicing audits (Invalid Chapter Only XREF audit)

Bug Risk Areas

  • National dues appearing on chapter-only invoices
  • Payment being blocked for chapter-only with valid XREF
  • Full payment allowed with invalid XREF (should only allow partial)

E2E-9: National Monthly Processing (Full Cycle)

Tests the National staff's complete monthly workflow: reviewing multiple chapter submissions, approving, publishing to Wells Fargo, and handling exceptions.

National Staff Processing Queue Wells Fargo Reopening Months CRITICAL PRIORITY
TC-9.1 Processing Queue — Multi-Chapter Review & PublishHybrid

Preconditions

  • At least 2-3 chapters have submitted monthly dues for the same month
  • Logged in as National Staff
  1. Navigate to Monthly Processing Queue. Select the month/year.
    Expected: Dashboard shows counts by status (Open, Submitted, Under Review, Approved, Published). Queue table shows chapters with submission data.
  2. Verify the Dues Report Transition Date logic: if current date is before the transition date (e.g., 20th), default month should be the previous month. If after, default should be current month.
  3. Select a chapter. Update status to "Under Review"
    Expected: Status updates. Chapter's monthly dues screen should remain locked.
  4. Try "Exclude Invoices" — select one member's invoice to exclude from processing
    Expected: Modal lists all members with invoices. Selected ones are excluded from processing when National publishes.
  5. Update status to "Approved"
    Expected: Sign-off email auto-triggered to Chapter contact.
  6. Select multiple chapters. Click "Publish Invoices to WF"
    Expected: Publishes to Wells Fargo. National Status → Published. If any chapter already published for this month, a warning appears.
  7. Try to publish the same chapter again for the same month
    Expected: Warning about already-published status.
  8. Use "Copy Contact Emails" — verify it copies dues contact emails from visible chapters

Bug Risk Areas

  • Dues Report Transition Date logic off by one day
  • Status transitions allowing skipped states (Open → Approved)
  • Excluded invoices still being published
  • No warning when re-publishing for the same month
  • Sign-off email not triggering on Approved status change
TC-9.2 Reopen a Closed Month & ResubmissionAuto

Preconditions

  • A month that has been submitted and approved (locked)
  • Logged in as National Staff
  1. National reopens the month for a chapter (unlock for corrections)
    Expected: Chapter's monthly screen becomes unlocked. Chapter status reverts to Open.
  2. Switch to Chapter Staff. Make a change (e.g., fix a member type, remove an invoice). Resubmit.
    Expected: Re-submission creates a new version. Previous version accessible via version history.
  3. Switch to National Staff. Open the chapter's drill-in. Click "Previous Version" link.
    Expected: Can toggle between versions. Differences between versions should be visible.
  4. If the change results in the chapter owing more to National, verify the handling
    Expected: Chapter must pay remaining balance separately for that month.
  5. If the change results in National owing chapter, verify: adjusted invoice in future month, original invoice type changed to "Adjusted" and excluded from member count

Bug Risk Areas

  • Reopened month not properly unlocking the chapter's screen
  • Version history not capturing re-submissions
  • Previous version link broken or showing same data
  • Financial adjustments (owe more / owe less) not handled correctly

E2E-10: Boundary Conditions & Negative Tests

A collection of targeted tests for edge cases, validation rules, and error conditions that commonly produce demo-breaking bugs.

Validation Rules Delete/Drop Boundary Dates HIGH PRIORITY
TC-10.1 Invoice Deletion RulesAuto
  1. Try to delete an Open invoice
    Expected: Deletion allowed.
  2. Try to delete a Paid invoice directly
    Expected: System blocks — cannot delete Paid invoices. Must change to Open first.
  3. Try to delete a Dropped invoice directly
    Expected: System blocks — cannot delete Dropped invoices. Must change to Open first.
  4. Try to modify a Paid invoice whose month is closed and reported to National
    Expected: System blocks modification. National must reopen the month first.
TC-10.2 Discount Window Date BoundariesAuto

Preconditions

  • Multiple discount windows configured (e.g., 10% by Nov 1, 5% by Dec 1)
  1. Pay an invoice before the first discount window date
    Expected: Highest discount (10%) applied.
  2. Pay an invoice exactly on the first discount window's last date
    Expected: Discount should still apply (verify inclusive vs exclusive date handling).
  3. Pay an invoice the day after the first discount window but before the second
    Expected: Only the 5% discount applies.
  4. Pay an invoice after all discount windows have expired
    Expected: No discount applied.
  5. Verify the discount is applied to chapter dollars only (National does NOT discount — when it says "discount on national," it's actually recorded in the chapter dollars amount)

Bug Risk Areas

  • Discount applying on the day after the window closes (off-by-one)
  • Discount incorrectly reducing National dollars instead of Chapter dollars
  • Multiple discount windows not cascading correctly
TC-10.3 Dues Landing Screen Filters & TotalsAuto
  1. On the Dues Landing Screen, verify Status filters (Open, Dropped, Paid) work as AND with Type filters (New, Renewal, Adjusted)
    Expected: Selecting "Open" + "Renewal" shows only open renewals. Checkboxes auto-apply (no "Apply Filters" button). Deselecting all shows everything.
  2. Verify the Totals Row (fixed at bottom) updates correctly as filters change
  3. Test Search by Company and Search by Invoice Number
  4. Export via Print/Export Selected — verify only selected invoices included and dues year in filename

Bug Risk Areas

  • Filters not working as AND (showing Paid + New when only Open + New selected)
  • Totals row not updating when filters change
  • Export including unselected invoices
TC-10.4 Invoice PDF / Print — Category Grid VerificationManual

Preconditions

  • Batch invoices exist with Step 2 settings configured
  • Before/After category print settings configured (e.g., Before = 2, After = 2)
  1. Print/preview an invoice PDF. Look at the volume/category grid section
    Expected: Categories shown on the PDF come from the DUES YEAR SETUP for the invoice year — NOT from the last paid invoice. The Before/After settings control how many categories above and below the member's own category appear on this grid.
  2. Verify the correct number of categories appear: member's category + [Before] categories above + [After] categories below
  3. Test with a member at the top category — there should be no categories "above" even if Before > 0
  4. Verify From/To Category correctly filters which invoices from the batch get printed (batch-level filter, NOT what shows on each invoice)

Bug Risk Areas

  • Category grid pulling from last paid invoice instead of Dues Year Setup
  • Before/After category count off by one
  • From/To Category confused with Before/After (they serve different purposes)
  • Categories from wrong schedule appearing on PDF
TC-10.5 National Dues Amount Lock & Bulk Chapter IncreaseAuto
  1. As Chapter Staff, try to edit a National $ amount on any category in Dues Year Setup
    Expected: Field is locked/non-editable.
  2. Use the Bulk Increase feature: increase all Chapter amounts by 5%
    Expected: Chapter $ amounts increase. National $ unchanged. Rounding applied per config ($1, $5, or $10).
  3. Click "Undo" button before leaving the screen
    Expected: All increases reverted. Undo should NOT be available after leaving and returning.
  4. If invoices already exist for this year, apply a bulk increase and verify the confirmation prompt warns that existing invoices won't retroactively update

Bug Risk Areas

  • National $ amounts becoming editable
  • Bulk increase accidentally modifying National amounts
  • Undo button working after leaving and returning to the screen
  • Missing confirmation when invoices already exist

✎ Submit Feedback

Report incorrect info or suggest improvements

✓ Feedback Submitted

Saved to the review queue for project lead approval.