MemberVu Manual E2E Testing Roadmap

Overview

A prioritized roadmap for manual E2E testing of the MemberVu membership management platform.

Existing Resources:


Test Environment Setup

Prerequisites

  1. Docker Compose running (docker compose up)
  2. RCME seed data loaded (docker exec membervu-backend npm run seed:rcme)
  3. Access to test environment URLs:

Test Users (12 accounts from seed-rcme-sandbox.ts)

Platform Administrator

RoleEmailPassword
Super Adminsuperadmin@zeniark.comSuperAdmin123!

Organization Leadership

RoleEmailPassword
Adminadmin@rcme.membervu.comAdmin123!
Officer (Read-only)officer@rcme.membervu.comOfficer123!
Finance Managertreasurer@demo.membervu.comTreasurer123!
Events Managerevents@demo.membervu.comEvents123!
Membership Managermembershipchair@demo.membervu.comMembership123!
Communications Managercomms@demo.membervu.comComms123!

Member Lifecycle

RoleEmailPasswordStatus
Active Membertestmember@rcme.membervu.comMember123!ACTIVE
Guestguest@demo.membervu.comGuest123!Guest user
Pending Applicantpending@demo.membervu.comPending123!PENDING_VERIFICATION
Pending Paymentpending-payment@demo.membervu.comPayment123!PENDING_PAYMENT
Expired Memberexpired@demo.membervu.comExpired123!EXPIRED

Test Tenant

FieldValue
Slugrcme
NameRotary Club of Manila Expats

Environment Check


Phase 0: Platform Administration (Day 0)

Priority: PREREQUISITE - Must pass before any feature testing

0.1 Environment Health Check

Test Case: /tester-files/admin/TC_ADMIN_001_ENVIRONMENT.md

#Test ScenarioPriority
1Frontend service accessibleP0
2Backend API health checkP0
3MailHog service accessibleP0
4All Docker containers runningP0
5Database connection workingP0

Pass Criteria: All services accessible

0.2 Tenant Configuration

Test Case: /tester-files/admin/TC_ADMIN_002_TENANT.md

#Test ScenarioPriority
1rcme tenant existsP0
2Feature flags enabledP0
3Organization profile configuredP0
4Dues settings configuredP0
5Approval workflow configuredP0
6Membership types existP0

Pass Criteria: All tenant configuration verified

0.3 Test User Verification

Test Case: /tester-files/admin/TC_ADMIN_003_USERS.md

#Test ScenarioTest UserPriority
1Super Admin loginsuperadmin@zeniark.comP0
2Admin loginadmin@rcme.membervu.comP0
3Officer loginofficer@rcme.membervu.comP0
4Finance Manager logintreasurer@demo.membervu.comP0
5Events Manager loginevents@demo.membervu.comP0
6Membership Manager loginmembershipchair@demo.membervu.comP0
7Communications Manager logincomms@demo.membervu.comP0
8Active Member logintestmember@rcme.membervu.comP0
9Guest loginguest@demo.membervu.comP0
10Pending Applicant loginpending@demo.membervu.comP0
11Pending Payment loginpending-payment@demo.membervu.comP0
12Expired Member loginexpired@demo.membervu.comP0

Pass Criteria: All 12 users can authenticate

0.4 Role Permissions Verification

Test Case: /tester-files/admin/TC_ADMIN_004_PERMISSIONS.md

#Test ScenarioPriority
1Super Admin has full access + tenant switcherP0
2Admin has full org accessP0
3Officer has read-only accessP0
4Finance Manager has finance-only accessP0
5Events Manager has events-only accessP0
6Membership Manager has members-only accessP0
7Communications Manager has broadcasts-only accessP0
8Member cannot access admin pagesP0
9Guest has public-only accessP0

Pass Criteria: All role restrictions verified

0.5 Seed Data Verification

Test Case: /tester-files/admin/TC_ADMIN_005_SEED_DATA.md

#Test ScenarioPriority
12 membership types existP0
23 test events existP0
35 test invoices existP0
412 member records existP0
5User-Member links validP0

Pass Criteria: All seed data verified


Phase 0B: Creation Tests - "From Scratch" Setup

Priority: P1 - Critical for validating first-time setup workflows

Key Difference from Phase 0A:

0B.1 Create New Tenant

Test Case: /tester-files/admin/TC_ADMIN_006_TENANT_CREATE.md

#Test ScenarioPriority
1Super Admin can access tenant managementP1
2Create tenant form displaysP1
3Tenant created with valid dataP1
4New tenant appears in listP1
5New tenant accessible via switcherP1
6Slug validation (duplicates rejected)P1

Pass Criteria: New tenant created and accessible

0B.2 Configure New Tenant

Test Case: /tester-files/admin/TC_ADMIN_007_TENANT_CONFIG.md

#Test ScenarioPriority
1Organization Profile configuredP1
2Feature Flags enabledP1
3Dues Settings configuredP1
4Approval Workflow configuredP1
5Membership Types createdP1
6All settings persist after refreshP1

Pass Criteria: All tenant configuration complete

0B.3 Create Admin User

Test Case: /tester-files/admin/TC_ADMIN_008_USER_CREATE.md

#Test ScenarioPriority
1User creation form accessibleP1
2Admin user created successfullyP1
3Verification email sent (MailHog)P1
4Email verification link worksP1
5New admin can loginP1
6New admin has correct permissionsP1

Pass Criteria: Admin user created, verified, and functional

0B.4 Create Member

Test Case: /tester-files/admin/TC_ADMIN_009_MEMBER_CREATE.md

#Test ScenarioPriority
1Admin can access member managementP1
2Member creation form worksP1
3Member created with membership typeP1
4Member appears in directoryP1
5Dues invoice generatedP1
6Invoice amount matches membership typeP1

Pass Criteria: Member created with correct invoice

0B.5 End-to-End Onboarding

Test Case: /tester-files/admin/TC_ADMIN_010_ONBOARDING.md

#Test ScenarioPriority
1Phase 1: Tenant createdP0
2Phase 2: Tenant fully configuredP0
3Phase 3: Admin user functionalP0
4Phase 4: Admin has full accessP0
5Phase 5: Members created with invoicesP0
6Phase 6: All users can loginP0

Pass Criteria: Complete first-time setup flow works end-to-end

0B.6 Edit Tenant

Test Case: /tester-files/admin/TC_ADMIN_011_TENANT_EDIT.md

#Test ScenarioPriority
1Super Admin can access tenant managementP1
2Inline edit mode activates on clickP1
3Slug is read-onlyP1
4Name and description editable and savedP1
5Changes persist after page refreshP1

Pass Criteria: Tenant name and description can be edited inline

0B.7 Tenant Switch (Super Admin)

Test Case: /tester-files/admin/TC_ADMIN_012_TENANT_SWITCH.md

#Test ScenarioPriority
1Super Admin sees tenant dropdown in headerP1
2Switch tenant via dropdown updates all API dataP1
3Org Profile shows target tenant's dataP1
4Switched tenant persists on page refreshP1
5"Switch & Configure" button works from Tenant ManagementP1
6Regular admin gets CSS-only switch (no data change)P1

Pass Criteria: Super Admin can switch between tenants with full data context change


Phase 1: Critical Path Testing (Days 1-3)

Priority: HIGHEST - Must pass before any release

1.1 Authentication Flow

Test Cases: /tester-files/auth/TC_AUTH_*.md

#Test ScenarioTest UserPriorityTest Case
1Login with valid credentialsadmin@rcme.membervu.comP0TC_AUTH_001
2Login with invalid passwordAnyP0TC_AUTH_001
3Login rate limiting (5 failed attempts)AnyP0TC_AUTH_001
4Password reset flowtestmember@rcme.membervu.comP0TC_AUTH_003
5Session timeout/expiryAnyP1TC_AUTH_005
6Logout clears sessionAnyP0TC_AUTH_005

Pass Criteria: All P0 tests pass

1.2 Member Registration & Verification

Test Cases: /tester-files/auth/TC_AUTH_002_REGISTRATION.md, /tester-files/membership/TC_MEM_004_APPROVAL.md

#Test ScenarioTest UserPriorityTest Case
1New member registrationNew emailP0TC_AUTH_002
2Email verification link worksPending memberP0TC_AUTH_004
3Expired verification link rejectedTest with old linkP0TC_AUTH_004
4Duplicate email rejectedExisting emailP0TC_AUTH_002
5Member approval workflowAdmin approves pending@demo.membervu.comP0TC_MEM_004

Pass Criteria: Full registration-to-approved flow works

1.3 Payment Processing

Test Cases: /tester-files/payments/TC_PAY_*.md

#Test ScenarioTest UserPriorityTest Case
1Submit manual payment (Bank Transfer)pending-payment@demo.membervu.comP0TC_PAY_001
2Admin approves pending paymenttreasurer@demo.membervu.comP0TC_PAY_003
3Admin rejects paymenttreasurer@demo.membervu.comP0TC_PAY_003
4Payment allocates to invoice correctlytreasurer@demo.membervu.comP0TC_PAY_003
5Partial payment handlingtestmember@rcme.membervu.comP1TC_PAY_001
6Payment gateway (TraxionPay)testmember@rcme.membervu.comP0TC_PAY_005

Pass Criteria: Money flows correctly, balances update


Phase 2: Core Feature Testing (Days 4-7)

Priority: HIGH - Core business functionality

2.1 Invoice Management

Test Cases: /tester-files/billing/TC_BIL_*.md

#Test ScenarioTest UserPriorityTest Case
1Create manual invoicetreasurer@demo.membervu.comP0TC_BIL_001
2View invoice list with filtersAny memberP0TC_BIL_002
3View invoice detailstestmember@rcme.membervu.com (own)P0TC_BIL_003
4Download invoice PDFtestmember@rcme.membervu.comP1TC_BIL_003
5Void invoicetreasurer@demo.membervu.comP1TC_BIL_004
6Invoice status transitions (DRAFT->ISSUED->PAID)treasurer@demo.membervu.comP0TC_BIL_004
7Overdue invoice identificationSystemP1TC_BIL_002
8Export invoices to CSVadmin@rcme.membervu.comP2TC_BIL_005

2.2 Event Management

Test Cases: /tester-files/events/TC_EVT_*.md

#Test ScenarioTest UserPriorityTest Case
1Create new event (free)events@demo.membervu.comP0TC_EVT_004
2Create paid event with ticketsevents@demo.membervu.comP0TC_EVT_004
3Publish/unpublish eventevents@demo.membervu.comP0TC_EVT_004
4Register for free eventtestmember@rcme.membervu.comP0TC_EVT_002
5Register for paid event (creates invoice)testmember@rcme.membervu.comP0TC_EVT_003
6Cancel registrationtestmember@rcme.membervu.comP1TC_EVT_002
7Event capacity limit enforcementMultiple usersP0TC_EVT_002
8Waitlist functionalityMember when fullP1TC_EVT_002
9Guest registration for eventguest@demo.membervu.comP1TC_EVT_002
10Event check-in (QR code)events@demo.membervu.comP0TC_EVT_005

2.3 Membership Management

Test Cases: /tester-files/membership/TC_MEM_*.md

#Test ScenarioTest UserPriorityTest Case
1View/edit own profiletestmember@rcme.membervu.comP0TC_MEM_001
2Admin edits member profileadmin@rcme.membervu.comP1TC_MEM_003
3Change membership typemembershipchair@demo.membervu.comP1TC_MEM_003
4Suspend membermembershipchair@demo.membervu.comP1TC_MEM_003
5Reactivate membermembershipchair@demo.membervu.comP1TC_MEM_003
6Member directory searchtestmember@rcme.membervu.comP0TC_MEM_002
7Directory visibility settingsadmin@rcme.membervu.comP2TC_MEM_002

Phase 3: Role-Based Access Testing (Days 8-10)

Priority: HIGH - Security & Permissions

3.1 RBAC Verification

Test Cases: /tester-files/rbac/TC_RBAC_*.md

Test each role can ONLY access permitted features:

RoleCan AccessCannot Access
ADMINAll featuresN/A
FINANCE_MANAGERInvoices, Payments, Financial ReportsMember management, Events
EVENT_MANAGEREvents, Registrations, Check-inInvoices, Payments
MEMBERSHIP_MANAGERMembers, Applications, DirectoryPayments, Events
MEMBEROwn profile, Events, Own invoicesOther members' data, Admin
GUESTPublic events onlyMember-only content

Test Matrix:

FeatureAdminFinance MgrEvents MgrMembership MgrMemberGuest
Dashboard
All Members
All Invoices
All Events
Create Invoice
Create Event
Approve Member
Approve Payment

Test Method: Login as each role, attempt to access each feature, verify correct allow/deny.


Phase 4: Communication Testing (Days 11-13)

Priority: MEDIUM-HIGH - Core feature with gaps

4.1 Broadcast Campaigns

Test Cases: /tester-files/communications/TC_COMM_*.md

#Test ScenarioTest UserPriorityTest Case
1Create broadcast (draft)comms@demo.membervu.comP0TC_COMM_001
2Edit draft broadcastcomms@demo.membervu.comP1TC_COMM_001
3Delete draft broadcastcomms@demo.membervu.comP1TC_COMM_001
4Send broadcast to all memberscomms@demo.membervu.comP0TC_COMM_001
5Send to segment (e.g., active only)comms@demo.membervu.comP1TC_COMM_002
6Verify email received (check MailHog)N/AP0TC_COMM_003
7Cannot edit sent broadcastcomms@demo.membervu.comP1TC_COMM_001

4.2 Automated Notifications

#Test ScenarioTriggerPriority
1Welcome email on registrationNew member signupP0
2Email verification linkRegistrationP0
3Password reset emailForgot passwordP0
4Event registration confirmationRegister for eventP0
5Invoice issued notificationInvoice createdP1
6Payment confirmationPayment approvedP1
7Event reminder (7 days)Scheduled jobP2
8Event reminder (1 day)Scheduled jobP2
9Payment overdue reminderScheduled jobP2

Phase 5: Dues & Financial Reports (Days 14-16)

Priority: MEDIUM - Financial accuracy critical

5.1 Dues Management

Test Cases: /tester-files/dues/TC_DUES_*.md

#Test ScenarioTest UserPriorityTest Case
1Configure dues settingsadmin@rcme.membervu.comP0TC_DUES_001
2Auto-generate dues invoicesSystem/AdminP0TC_DUES_003
3Dues calculation by membership typeVerify amountsP0TC_DUES_002
4Pro-rated dues for new membersNew memberP1TC_DUES_002
5Dues renewal invoicesAnnual cycleP1TC_DUES_003

5.2 Financial Reporting

#Test ScenarioTest UserPriority
1View financial summarytreasurer@demo.membervu.comP0
2Payment report by date rangetreasurer@demo.membervu.comP1
3Outstanding balances reporttreasurer@demo.membervu.comP1
4Member statement generationMember/Finance ManagerP1
5Export financial dataadmin@rcme.membervu.comP2

Phase 6: Edge Cases & Error Handling (Days 17-18)

Priority: MEDIUM - Robustness

6.1 Validation & Error Cases

#Test ScenarioExpected Result
1Submit form with required fields emptyValidation errors shown
2Enter invalid email formatError message
3Enter negative payment amountRejected
4Upload oversized file (>10MB)Error message
5Upload invalid file typeRejected
6Access page without loginRedirect to login
7Access other tenant's data (if multi-tenant)403 Forbidden

6.2 Concurrency Scenarios

#Test ScenarioExpected Result
1Two users register for last event spotOnly one succeeds
2Two payments for same invoice simultaneouslyNo double-payment
3Edit same record from two browsersLast save wins or conflict shown

Phase 2B: Homepage Dynamic Content (Days 7-9)

Priority: HIGH - Core member experience, all content previously hardcoded/empty

Reference: _bmad-output/planning-artifacts/prd-homepage-dynamic-content-2026-03-21.md

Admin Route: /admin/homepage (new page)

Member Surface: MemberHomePage.tsx — 7 components now data-driven

2B.1 President's Message

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_001_PRESIDENTS_MESSAGE.md

#Test ScenarioTest UserPriority
1Admin creates president's messageadmin@rcme.membervu.comP0
2Message displays on member homepagetestmember@rcme.membervu.comP0
3Replacing message removes old one (one per tenant)admin@rcme.membervu.comP0
4Empty state: card hidden when no message settestmember@rcme.membervu.comP1
5Required field validationadmin@rcme.membervu.comP1

Pass Criteria: Admin can create/replace; member sees it; card hidden when absent

2B.2 Announcements

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_002_ANNOUNCEMENTS.md

#Test ScenarioTest UserPriority
1Create announcementadmin@rcme.membervu.comP0
2Announcements appear newest-first on homepagetestmember@rcme.membervu.comP0
3Max 5 shown by default (pagination)testmember@rcme.membervu.comP1
4Edit and delete announcementadmin@rcme.membervu.comP1
5Empty state handled gracefullytestmember@rcme.membervu.comP1

Pass Criteria: Full CRUD works; ordering correct; 5-item limit enforced

2B.3 Upcoming Birthdays

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_003_BIRTHDAYS.md

#Test ScenarioTest UserPriority
1Members with DOB in next 30 days showntestmember@rcme.membervu.comP0
2Birth year NOT displayed (privacy)testmember@rcme.membervu.comP0
3Members with no DOB excludedtestmember@rcme.membervu.comP0
4Birthday hero banner triggers on member's birthdaytestmember@rcme.membervu.comP1
5Members beyond 30-day window excludedtestmember@rcme.membervu.comP1

Pass Criteria: DOB privacy preserved; hero banner triggers correctly; window respected

2B.4 Club Officers

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_004_CLUB_OFFICERS.md

#Test ScenarioTest UserPriority
1Admin adds officersadmin@rcme.membervu.comP0
2Officers display sorted by sortOrdertestmember@rcme.membervu.comP0
3Admin reorders officersadmin@rcme.membervu.comP1
4Edit and delete officeradmin@rcme.membervu.comP1
5Standalone (not tied to Member records)admin@rcme.membervu.comP1

Pass Criteria: Officers render in correct order; CRUD complete; standalone model confirmed

2B.5 Content Customization (Birthday, Guest Welcome, Pending Member)

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_005_CONTENT_CUSTOMIZATION.md

#Test ScenarioTest UserPriority
1Custom birthday banner message with {memberName} merge tagadmin + testmemberP0
2Custom guest welcome title/body with {orgName} merge tagadmin + guest@demo.membervu.comP0
3Custom pending member message with {memberName} merge tagadmin + pending@demo.membervu.comP1
4Reset to default clears custom valueadmin@rcme.membervu.comP1
5Null fields fall back to app-level defaults on GETtestmember@rcme.membervu.comP1

Pass Criteria: Merge tags resolve; defaults apply when fields null; per-tenant isolation

2B.6 Security — HTML Sanitization & Tenant Isolation

Test Case: /tester-files/01_TEST_CASES/homepage/TC_HP_006_SECURITY.md

#Test ScenarioPriority
1