End-to-End Test Scripts
ABC Events Module — E2E Test Scripts
Complete test flows covering event lifecycle, registration, payments, and portal access. 25+ test cases across 8 flows.
Overview
E2E-1 Happy Path 0/4
E2E-2 Portal Reg 0/4
E2E-3 Sponsors 0/3
E2E-4 Coupons 0/3
E2E-5 Payments 0/3
E2E-6 Capacity 0/3
E2E-7 Mgmt 0/3
E2E-8 Edge Cases 0/3
ABC Events — E2E Test Flows
8 comprehensive end-to-end test flows covering the complete Events module lifecycle: from event creation through payment processing and portal registration. Each flow represents a real-world business scenario you can execute start to finish.
E2E-1: Happy Path (Event Lifecycle)
Complete event lifecycle: create event → add functions → configure tickets → process registration and payment → close event. The golden path every tester must run.
4 Test Cases
Chapter Staff
~40 min
E2E-2: Portal Registration (4-Step Process)
Member accesses portal, browses events, completes 4-step registration (contact info, ticket selection, attendee entry, payment). Tests portal UX and data capture.
4 Test Cases
Portal User
~30 min
E2E-3: Sponsors & Included Items
Verify sponsor auto-creation, quantity management, custom fields. Tests sponsor auto-attendee creation per ticket quantity (ABC-2865).
3 Test Cases
Sponsor Admin
~25 min
E2E-4: Coupons & Discounts
Create percentage and fixed-dollar coupons, test coupon scoping, non-member access, one-time-per-user rules.
3 Test Cases
Discount Config
~20 min
E2E-5: Payment & Invoice Processing
Test Request Invoice vs Pay Now flows, shopping cart capacity checks at checkout, zero-dollar invoice handling.
3 Test Cases
Invoicing
~25 min
E2E-6: Capacity & Delete Rules
Enforce max available capacity, verify delete-only-when-no-registrations rules for events/functions/tickets.
3 Test Cases
Data Protection
~20 min
E2E-7: Registration Management
Create multiple registrations per attendee, edit registrations, test contact field auto-update, manage My Events portal.
3 Test Cases
Registration Admin
~25 min
E2E-8: Edge Cases & Communications
Copy ticket functionality, event communications templates, mark as not attending, status management.
3 Test Cases
Advanced Flows
~20 min
E2E-1: Happy Path (Event Lifecycle)
Complete event lifecycle from creation through payment processing. This is the golden path every tester should execute first to validate core functionality.
Chapter Staff
Events
Functions
Tickets
Registration
Payments
CRITICAL PRIORITY
E2E-1 Happy Path > TC-1.1
Easy
10 min
Preconditions
- User has Chapter Staff Level 2+ permission
- Events module is accessible
- Navigate to Browse Events > Add Event
✓
Navigate to Events Admin. Click "Add Event". Enter Event Name: "Annual Gala 2026", Start Date: 06/15/2026.
Expected: Event Status defaults to "Active". Event saved successfully.
✓
Verify event appears in Browse Events. Click to view event. Go to Functions tab. Click "Add Function". Verify start and end dates auto-default to event dates.
Expected: Function start/end dates pre-populated from event. User can override if needed.
✓
Enter Function Name: "Keynote Address". Set Time: 6:00 PM - 7:00 PM. Click "Save".
Expected: Function created and appears in Functions tab.
Bug Risk Areas
Event name containing special characters rejected by validation
Function dates not auto-defaulting to event dates
Event status not defaulting to Active
Browse Events showing deleted or inactive events
E2E-1 Happy Path > TC-1.2
Easy
12 min
Preconditions
- Event from TC-1.1 exists with function
- Navigate to Tickets tab
✓
Go to Tickets tab. Click "Add Ticket". Create ticket: Name "General Admission", Type "Single", Price $50.00, Max Available 100.
Expected: Ticket created with all fields saved. Appears in Tickets grid.
✓
Set Tax: 8%. Verify tax calculation: $50 × 0.08 = $4.00.
Expected: Tax calculated as percentage, not flat dollar amount. Total with tax = $54.00.
✓
Create second ticket: Name "VIP Dinner Table", Type "Table", Price $500.00, Max Available 10, Quantity Per Table 8.
Expected: Table ticket created with quantity controls. Max Available enforced per table unit.
Bug Risk Areas
Tax calculated as flat dollar instead of percentage
Max Available capacity not enforced during registration
Table ticket quantity not properly constrained
Price field accepting non-numeric input
E2E-1 Happy Path > TC-1.3
Medium
10 min
Preconditions
- Event from TC-1.2 exists with tickets configured
- Navigate to Registrations tab > Add Registration
✓
Create new registration. Select "Add New Individual". Enter: Name "Jane Doe", Email "jane@example.com", Company "ABC Corp".
Expected: Individual and company created. Registration record initialized.
✓
Select ticket: "General Admission" for function "Keynote Address". Enter attendee details if custom fields required.
Expected: Ticket assigned. Registration Status = Open. No payment yet.
✓
Click "Generate Invoice" or "Pay Now". If generating invoice, verify amount: $54.00 (price + tax).
Expected: Invoice created with correct total. Payment Status = Open or Paid (depending on choice).
Bug Risk Areas
Invoice amount not matching ticket price + tax
Registration created but attendee not linked to company
Custom required fields allowing empty submission
E2E-1 Happy Path > TC-1.4
Easy
8 min
Preconditions
- Registration from TC-1.3 exists with open invoice
- Navigate to Invoices tab
✓
Verify invoice appears in Invoices tab. Click to view details. Confirm amount: $54.00 (price + 8% tax).
Expected: Invoice displays correct breakdown: Price $50.00, Tax $4.00, Total $54.00.
✓
Click "Mark as Paid". Select payment method "Check". Enter reference and date.
Expected: Invoice status changes to Paid. Payment record created with all details.
✓
Go to Event view. Change Event Status to "Closed" or "Completed". Verify option is available (should not be blocked by registrations).
Expected: Event status changes successfully. Registrations remain intact and accessible.
Bug Risk Areas
Invoice status not updating after payment marked
Event close blocked when should be allowed with registrations
Invoice payment details not persisting after save
E2E-2: Portal Registration (4-Step Process)
Tests the member portal registration flow: browse events, register through 4 steps (contact info, ticket selection, attendee entry, payment).
Portal User
Portal
Registration
CRITICAL PRIORITY
E2E-2 Portal Registration > TC-2.1
Easy
5 min
Preconditions
- Portal is publicly accessible (non-authenticated)
- At least one active event exists
✓
Access portal home (no login). Verify Events tab or section displays all active public events in "List view".
Expected: Event list shows Name, Date, Location. All active events visible to non-members.
✓
Switch to "Grid view". Verify events display as cards with image, title, date, location.
Expected: Grid layout shows events with visual distinction for paid vs free, capacity info.
✓
Switch to "Calendar view". Verify events appear on correct dates. Click on an event date.
Expected: Calendar shows events by date. Clicking date reveals event details or redirect to event page.
Bug Risk Areas
View toggle not switching between List/Grid/Calendar
Non-active events appearing in public portal
Calendar dates misaligned with actual event dates
E2E-2 Portal Registration > TC-2.2
Easy
5 min
Preconditions
- Member is logged in to portal
- Member has existing profile (name, email, company)
- Click "Register" on an active event
✓
Portal shows Step 1: Contact Information. Verify fields are pre-populated: Name, Email, Company from member profile.
Expected: All contact fields auto-filled from logged-in user's profile. Fields editable but not required to modify.
✓
Try editing a field (e.g., change email to "newemail@example.com"). Click "Next" to proceed to Step 2.
Expected: Edited values retained for this registration only. Member's profile NOT updated (portal edits = registration only).
Bug Risk Areas
Contact fields not auto-populating from member profile
Portal edits overwriting member's database profile
Email format validation rejecting valid addresses
E2E-2 Portal Registration > TC-2.3
Medium
8 min
Preconditions
- Portal Step 1 completed
- Event has multiple ticket types with varying availability
- Jira: ABC-2713 — ticket capacity display
✓
Portal shows Step 2: Ticket Selection. Verify each ticket displays: Name, Price, "Remaining Available" count.
Expected: Capacity display shows real-time availability (e.g., "95 remaining of 100"). Sold-out tickets show 0 or grayed out.
✓
Select a ticket: "General Admission" (qty 1). Verify selection shows in cart/summary. Click "Next".
Expected: Ticket added to registration. Cart does NOT create registration yet (only on checkout).
✓
Try selecting more than Max Available (e.g., select 200 when max is 100). Attempt to add to cart.
Expected: Error message appears. Quantity reduced to maximum available. Cannot proceed with oversized order.
Bug Risk Areas
Capacity display not updating in real-time as other users register
Sold-out tickets still selectable in cart
Over-capacity orders allowed to proceed (ABC-2713)
E2E-2 Portal Registration > TC-2.4
Medium
8 min
Preconditions
- Portal Step 2 completed with ticket selected
- Ticket has custom fields defined (e.g., Dietary Restrictions, T-Shirt Size)
- Jira: ABC-2707 — attendee entry field handling
✓
Portal shows Step 3: Attendee Information. Verify custom fields appear for the selected ticket. Example: "Dietary Restrictions" dropdown.
Expected: All custom fields defined for this ticket type are displayed and editable.
✓
Fill in required custom fields. If a field is required, attempt to proceed without entering data.
Expected: Form validation prevents submission if required field is empty. Error message displayed.
✓
Complete all custom fields. Click "Next" to proceed to Step 4 (Payment).
Expected: Attendee data captured. Ready for payment step.
Bug Risk Areas
Custom fields not displaying or truncated
Required field validation not enforced (ABC-2707)
Dropdown/select values not loading
E2E-3: Sponsors & Included Items
Tests sponsor management, auto-attendee creation per ticket quantity, and included items tracking.
Chapter Staff
Sponsors
Included Items
CRITICAL PRIORITY
E2E-3 Sponsors & Items > TC-3.1
Medium
10 min
Preconditions
- Event exists with sponsor ticket type configured
- Sponsor ticket has Included Items defined (seats, meals, etc.)
- Navigate to Sponsors tab
- Jira: ABC-2865 — sponsor auto-attendee creation
✓
Go to Sponsors tab. Click "Add Sponsor". Enter: Company Name "Acme Inc", Contact "John Smith", Ticket Type "VIP Sponsor Table (8 seats)".
Expected: Sponsor created. System should auto-generate 8 attendee placeholders (ABC-2865).
✓
Verify automatic attendee creation. Go to Attendees tab. Verify 8 attendees appear with Sponsor = "Acme Inc".
Expected: Attendees auto-created per ticket quantity. Names may be placeholder or auto-generated (ABC-2865).
✓
In Sponsors tab, view sponsor details. Verify all included items are listed (e.g., 8 seats, parking passes, meals).
Expected: Included items display with quantities matching sponsor configuration.
Bug Risk Areas
Attendees NOT auto-created when sponsor added (ABC-2865)
Incorrect number of attendees created (not matching ticket quantity)
Included items not appearing in attendee records
E2E-3 Sponsors & Items > TC-3.2
Medium
8 min
Preconditions
- Sponsor from TC-3.1 exists with 8 attendees
- Navigate to Sponsors tab > Edit Sponsor
✓
Click "Edit" on sponsor. Change quantity from 8 to 10 seats. Click "Save".
Expected: System auto-creates 2 new attendees. Total attendees = 10.
✓
Edit sponsor again. Change quantity from 10 to 6 seats. Click "Save".
Expected: System removes 4 attendees. Only 6 attendees remain (or system marks 4 as unused/deleted).
Bug Risk Areas
Quantity change not triggering attendee auto-adjustment
Attendees not being deleted when quantity decreased
Duplicate attendees created on update
E2E-3 Sponsors & Items > TC-3.3
Easy
5 min
Preconditions
- Sponsor from TC-3.2 exists
- Navigate to Sponsors tab
✓
Select sponsor. Click "Delete". Confirm deletion.
Expected: Sponsor deleted from Sponsors tab.
✓
Go to Attendees tab. Verify attendees associated with deleted sponsor are handled (deleted, marked inactive, or orphaned).
Expected: Attendees no longer appear or marked as unassigned. No orphaned records.
Bug Risk Areas
Sponsor deletion leaving orphaned attendee records
Delete button missing or disabled when should be available
E2E-4: Coupons & Discounts
Tests coupon creation, application, scoping, and one-time-per-user rules.
Chapter Staff
Coupons
Discounts
E2E-4 Coupons & Discounts > TC-4.1
Easy
8 min
Preconditions
- User has coupon management permission
- Navigate to Coupons section > Add Coupon
✓
Create coupon: Code "SUMMER20", Type "Percentage", Discount 20%, Scope "All Events".
Expected: Coupon saved with all details. Appears in Coupons list.
✓
Set Valid From/To dates: 01/01/2026 - 12/31/2026. Set Max Uses Unlimited. Click "Save".
Expected: Coupon becomes active within date window and usable across all events.
Bug Risk Areas
Percentage discount stored as flat dollar amount
Coupon not enforcing date window
All Events scope applying to only current event
E2E-4 Coupons & Discounts > TC-4.2
Medium
10 min
Preconditions
- Multiple events with tickets exist
- Navigate to Coupons > Add Coupon
✓
Create coupon: Code "MEMBER10", Type "Fixed Dollar", Discount $10.00, Scope "Event: Annual Gala 2026".
Expected: Coupon scoped to single event. Not applicable to other events.
✓
Optionally narrow scope further: "Specific Tickets" - select "General Admission" only. Click "Save".
Expected: Coupon applies only to specified ticket type in that event.
Bug Risk Areas
Scope selections not saving correctly
Fixed dollar discount exceeding ticket price (should cap at price)
Ticket-specific scope applying to all tickets
E2E-4 Coupons & Discounts > TC-4.3
Medium
10 min
Preconditions
- Coupon with "Non-Member Access" setting exists
- Portal registration flow in progress
✓
In portal (Step 4: Payment), try to apply coupon as non-authenticated user. Attempt to enter coupon code.
Expected: Non-members see error: "Please log in to apply coupon" or code is rejected if access not granted.
✓
Create coupon with "One-Time Per User" rule. Test: first user applies coupon successfully. Second user tries same coupon.
Expected: First application successful. Second user gets error: "Coupon already used" or "limit reached".
✓
Test one-time rule NOT returning HTTP 500 error. Verify proper error message is shown instead.
Expected: 4xx error with user-friendly message (not 500 server error).
Bug Risk Areas
One-time coupon returning HTTP 500 instead of proper error message
Non-member coupon access not enforced
One-time limit not being tracked across users
E2E-5: Payment & Invoice Processing
Tests Request Invoice vs Pay Now flows, shopping cart capacity checks, zero-dollar invoices.
Chapter Staff / Portal
Payments
Invoicing
CRITICAL PRIORITY
E2E-5 Payment & Invoicing > TC-5.1
Medium
10 min
Preconditions
- Portal registration Steps 1-3 completed
- User at Step 4: Payment
- Event ticket with price $54.00 (includes tax)
✓
In portal Step 4, verify two options appear: "Request Invoice" and "Pay Now".
Expected: Both buttons available. Amount summary displays total $54.00 with tax breakdown.
✓
Click "Request Invoice". Verify registration created with Status "Open" and Payment Status "Unpaid". Invoice generated and sent to user email.
Expected: Invoice created (not paid). Member can pay later. Success message shown.
✓
In a new registration, click "Pay Now". Enter payment method and card/check details.
Expected: Payment processed (or payment gateway shown). Registration Status "Paid". Confirmation email sent.
Bug Risk Areas
Request Invoice option missing or disabled
Invoice not generated when Request Invoice selected
Payment status not updating to Paid after Pay Now
E2E-5 Payment & Invoicing > TC-5.2
Medium
12 min
Preconditions
- Multiple events available in portal
- At least one event has capacity limits
✓
Browse portal. Add tickets from Event A and Event B to cart. Verify items appear in cart/summary without creating registrations yet.
Expected: Cart shows multiple events/tickets. Registrations NOT created until checkout (critical rule).
✓
Proceed to checkout. If a ticket in cart fills while in cart (other registrations consumed capacity), verify error appears.
Expected: Checkout fails with error: "Ticket is no longer available (capacity full)". No registration created.
✓
Add tickets with sufficient available capacity. Complete checkout successfully.
Expected: All registrations created. One registration per ticket option. Invoices generated for each event.
Bug Risk Areas
Cart items creating registrations before checkout (early creation)
Capacity check NOT happening at checkout time
Over-capacity orders completing without error
E2E-5 Payment & Invoicing > TC-5.3
Easy
8 min
Preconditions
- Free event (Price $0.00) OR event with "$0 on Invoice" setting enabled
✓
Register for free event. In portal Step 4, verify payment options not shown (no payment needed).
Expected: Step 4 shows "Complete Registration" button instead of payment options.
✓
Complete registration. Verify invoice is generated with $0.00 total. Status automatically "Paid".
Expected: Zero-dollar invoice created. No payment collection needed. Registration marked as paid.
Bug Risk Areas
Zero-dollar invoice not auto-marked as paid
Payment prompt appearing for free events
Invoice amount showing negative or invalid value
E2E-6: Capacity & Delete Rules
Tests max available capacity enforcement and delete-only-when-no-registrations rules.
Chapter Staff
Capacity
Data Protection
CRITICAL PRIORITY
E2E-6 Capacity & Delete > TC-6.1
Medium
10 min
Preconditions
- Ticket with Max Available 5 configured
- 0 current registrations
✓
In Chapter Admin, add 5 registrations for the ticket (one at a time). On 6th attempt, try to add another.
Expected: First 5 succeed. 6th fails with error: "Maximum capacity reached for this ticket".
✓
In Portal, with 5 registrations full, try to add ticket to cart. Attempt checkout.
Expected: Portal shows "0 remaining" for capacity. Either blocks selection or fails at checkout with capacity error.
Bug Risk Areas
Capacity limit not enforced in chapter admin registration
Over-capacity registrations allowed in portal
Capacity count not decrementing correctly
E2E-6 Capacity & Delete > TC-6.2
Medium
10 min
Preconditions
- Event with function and ticket, with 1+ registrations
✓
Try to delete the Event. Verify Delete button is hidden or disabled because registrations exist.
Expected: Delete button not available. Message: "Cannot delete event with registrations" or similar.
✓
Try to delete the Ticket. Verify Delete blocked because registrations exist for this ticket.
Expected: Delete blocked with explanation message.
✓
Delete all registrations for the ticket. Then try to delete the ticket again.
Expected: Ticket now deletes successfully (no registrations).
Bug Risk Areas
Delete button enabled when registrations exist (data loss risk)
Delete succeeds despite active registrations
Error message unclear about why delete is blocked
E2E-6 Capacity & Delete > TC-6.3
Easy
6 min
Preconditions
- Event with paid registration exists
- Navigate to Registrations tab
✓
Try to delete a paid registration. Verify Delete blocked because payment status = Paid.
Expected: Delete button disabled or error message: "Cannot delete paid registration".
✓
Delete an "Open" (unpaid) registration. Verify deletion succeeds.
Expected: Registration removed. Capacity restored (if applicable).
Bug Risk Areas
Delete allowed on paid registrations (data integrity risk)
Capacity not restored after registration deletion
E2E-7: Registration Management
Tests multiple registrations per attendee, registration editing, contact field auto-update, and My Events portal.
Chapter Staff / Portal
Registration
Portal
E2E-7 Registration Mgmt > TC-7.1
Medium
10 min
Preconditions
- Event with multiple ticket types
- One attendee (Jane Doe) with 1 registration
✓
Create a second registration for same attendee (Jane Doe), different ticket: "VIP Dinner Table" (function 2).
Expected: Second registration created. Jane Doe now has 2 registrations in Registrations tab (one per ticket option).
✓
Go to Attendees tab. Verify Jane Doe appears ONCE in the list, despite 2 registrations.
Expected: Attendee count = 1. Attendees tab shows each unique person once (critical rule). Registrations tab shows 2 records.
Bug Risk Areas
Attendee listed multiple times (once per registration)
Cannot create second registration for same attendee
Attendee count inflated due to duplicate entries
E2E-7 Registration Mgmt > TC-7.2
Medium
10 min
Preconditions
- Registration for Jane Doe exists
- Navigate to Registrations tab > Edit
✓
Edit registration. Change contact field: Email from "jane@example.com" to "jane.doe@newcorp.com". Click "Save".
Expected: Registration email updated. Attendee record email updated (in Attendees tab).
✓
Navigate away, then return to registration. Verify email still shows "jane.doe@newcorp.com". Check that OTHER registrations for Jane Doe show the SAME email (auto-sync across registrations).
Expected: Contact field changes propagate across all registrations for that attendee (same individual).
✓
Verify database profile for Jane Doe did NOT change. Only this registration's contact copy was updated.
Expected: Registration contact = "jane.doe@newcorp.com", but master attendee database profile still has original email.
Bug Risk Areas
Registration edits overwriting master attendee database profile
Contact field changes NOT syncing across multiple registrations
Edit not persisting after save
E2E-7 Registration Mgmt > TC-7.3
Easy
8 min
Preconditions
- Member is logged into portal
- Member has 2+ registrations across different events
✓
In portal, navigate to "My Events" section. Verify all events with active registrations appear.
Expected: My Events shows list/cards of all events member is registered for with registration count and status.
✓
Click on an event to view registration details. Verify member can see their registrations and edit if allowed.
Expected: Event detail page shows all member's registrations. May allow editing of custom fields or status.
Bug Risk Areas
My Events section missing or not showing registrations
Registrations from other members appearing in My Events
Event details not loading or incomplete
E2E-8: Edge Cases & Communications
Tests copy ticket functionality, event communications templates, status management.
Chapter Staff
Advanced Features
E2E-8 Edge Cases > TC-8.1
Medium
10 min
Preconditions
- Ticket with custom fields, tax, price, and included items exists
- Navigate to Tickets tab
✓
Select ticket. Click "Copy Ticket". Verify system shows a copy dialog/form with ticket name pre-filled (e.g., "General Admission - Copy").
Expected: Copy dialog displays with editable name field and copy options.
✓
Complete copy operation. Verify new ticket has ALL data: Price, Tax%, Max Available, Custom Fields, Included Items (if any).
Expected: All fields copied. No data loss. New ticket appears in Tickets grid with correct values.
✓
Edit the copied ticket (e.g., change price). Verify original ticket is unchanged.
Expected: Changes to copy do not affect original. Tickets are independent.
Bug Risk Areas
Copy dialog missing or not appearing
Custom fields or tax not copied to new ticket
Max Available capacity not copied correctly
Copy operation modifying original ticket
E2E-8 Edge Cases > TC-8.2
Medium
10 min
Preconditions
- Event with registrations exists
- Navigate to Event > Communications tab
✓
Verify Communications tab displays: Confirmation Email, Reminder Email, and Custom Message templates.
Expected: All email template options visible. Templates can be viewed/edited.
✓
Click on "Confirmation Email". Verify default template displays with variables (e.g., {Attendee}, {EventDate}, {TicketType}).
Expected: Template shows merge fields for personalization. Can edit template text.
✓
Create or edit custom message. Click "Send Test Email" to chapter staff.
Expected: Test email sent with template preview. Merge fields resolved with sample data.
Bug Risk Areas
Communications tab missing
Merge fields not resolving in test email
Custom template edits not saving
E2E-8 Edge Cases > TC-8.3
Easy
6 min
Preconditions
- Registration with Status = "Attending" or "Registered" exists
- Navigate to Registrations tab
✓
Select registration. Verify status dropdown or menu includes: "Attending", "Not Attending", "Tentative" (if applicable).
Expected: Status options available. User can select "Not Attending".
✓
Change registration status to "Not Attending". Click "Save".
Expected: Status updated. If attendance tracking enforced, "Not Attending" count increments. Attendee may remain in Attendees list or marked inactive.
Bug Risk Areas
Status dropdown not appearing or options missing
Status change not persisting
Not Attending registrations not reflected in attendance reports