Bug Verification Test Index
Last Updated: 2026-02-10 (Verification Run #2)
This document tracks all reported bugs and their corresponding Playwright automated verification tests.
Quick Reference
| Bug ID | Severity | Component | Status | Test File | Test Status |
|---|---|---|---|---|---|
| BUG-PHASE3-001 | P3 | RBAC | Closed | BUG-PHASE3-001.spec.ts | ✅ PASS (Working as Designed) |
| BUG-PHASE3-002 | P3 | RBAC | Closed | BUG-PHASE3-002.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE4-001 | P1 | Communications | Closed | BUG-PHASE4-001.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE5-001 | P1 | Reporting | Closed | BUG-PHASE5-001.spec.ts | ✅ PASS (Not a Bug) |
| BUG-PHASE6-001 | P1 | Authentication | Closed | BUG-PHASE6-001.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE7-001 | P0 | Guest Portal | Closed | BUG-PHASE7-001.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE7-002 | P0 | Guest Portal | Closed | BUG-PHASE7-002.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE7-003 | P3 | Guest Portal | Closed | BUG-PHASE7-003.spec.ts | ✅ PASS (Fixed) |
| BUG-PHASE7-004 | P2 | Guest Portal | Closed | BUG-PHASE7-004.spec.ts | ✅ PASS (Fixed) |
Bug Details
BUG-PHASE3-001: Quick Login Role Update
- Severity: P3 - Minor
- Component: RBAC/Permissions
- Summary: Quick Login buttons do not reflect updated user roles after role assignment changes
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE3-001.spec.ts - Expected: Quick Login should authenticate user with current roles from database
- Actual: Quick Login uses cached/preset role configuration
- Workaround: Use manual login with email/password
BUG-PHASE3-002: Role Naming Inconsistency
- Severity: P3 - Minor
- Component: RBAC/Permissions
- Summary: Role naming inconsistency: PENDING_PAYMENT vs PENDING_MEMBER, missing EXPIRED_MEMBER
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE3-002.spec.ts - Expected: Role should be named "PENDING_PAYMENT", EXPIRED_MEMBER should exist
- Actual: Role is named "PENDING_MEMBER", EXPIRED_MEMBER missing
- Impact: Documentation/code mismatch, confusion for testers
BUG-PHASE4-001: Missing Unsubscribe Link
- Severity: P1 - Critical ⚠️
- Component: Communications/Broadcast
- Summary: Broadcast emails missing unsubscribe link in email footer
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE4-001.spec.ts - Expected: Email footer should contain unsubscribe link
- Actual: Email footer only shows "This email was sent by Demo Organization"
- Compliance Risk: CAN-SPAM Act (US), GDPR (EU) violations
- Blocks: TC_COMM_005 (Unsubscribe Flow)
BUG-PHASE5-001: Financial Export Failure
- Severity: P1 - Critical ⚠️
- Component: Reporting
- Summary: Financial report export functionality fails with "Invoice not found" error
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE5-001.spec.ts - Expected: Export Report button should download CSV/Excel/PDF
- Actual: Error alert "Invoice not found", no download
- API Error: GET /api/billing/invoices/export returns 404
BUG-PHASE6-001: Silent Email Validation
- Severity: P1 - Critical ⚠️
- Component: Authentication
- Summary: Email format validation fails silently - no error message displayed
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE6-001.spec.ts - Expected: Invalid email format should show clear error message
- Actual: Form submission prevented but no validation error message
- Impact: Poor UX - users don't know why form isn't submitting
- Affects: Login and Registration forms
BUG-PHASE7-001: Public Events 404
- Severity: P0 - Blocker 🔴
- Component: Guest Portal / Events
- Summary: Public events page returns 404 error due to duplicate "public" in API path
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE7-001.spec.ts - Expected: Public events page loads with list of upcoming events
- Actual: 404 "Organization Not Found" error
- API Error: /api/public/public/events (duplicate "public")
- Correct Path: /api/public/events
BUG-PHASE7-002: Guest Application 401
- Severity: P0 - Blocker 🔴
- Component: Guest Portal / Member Management
- Summary: Guest membership application submission fails with 401 Unauthorized
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE7-002.spec.ts - Expected: Guest can submit membership application successfully
- Actual: 401 Unauthorized error, user logged out, application not submitted
- API Error: POST /api/membership/apply returns 401
- Impact: Complete guest-to-member conversion workflow is broken
BUG-PHASE7-003: Undefined Organization Name
- Severity: P3 - Minor
- Component: Guest Portal / Member Management
- Summary: Membership application form displays "undefined" instead of organization name
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE7-003.spec.ts - Expected: Form should show "Complete your application to join [Organization Name]"
- Actual: Form shows "Complete your application to join undefined"
- Impact: Cosmetic issue, poor user experience
BUG-PHASE7-004: Missing Membership Type Field
- Severity: P2 - Major
- Component: Guest Portal / Member Management
- Summary: Membership application form missing "Membership Type" selection field
- Test File:
playwright-e2e/tests/bugs/BUG-PHASE7-004.spec.ts - Expected: Form should include membership type dropdown (Regular, Associate, Student)
- Actual: No membership type selection field present
- Impact: Cannot capture guest's desired membership tier, blocks automatic dues invoice generation
Running Bug Tests
Prerequisites
- Docker containers running (membervu-frontend, membervu-backend, membervu-mailhog, membervu-postgres)
- Database seeded with RCME tenant data
Run All Bug Tests
cd playwright-e2e
npx playwright test tests/bugs/ --project=chromium --reporter=list
Run Specific Bug Test
# Example: Test BUG-PHASE7-001
npx playwright test tests/bugs/BUG-PHASE7-001.spec.ts --project=chromium --reporter=list
Run Tests by Priority
# P0 Blockers only
npx playwright test tests/bugs/BUG-PHASE7-001.spec.ts tests/bugs/BUG-PHASE7-002.spec.ts --project=chromium
P1 Critical bugs
npx playwright test tests/bugs/BUG-PHASE4-001.spec.ts tests/bugs/BUG-PHASE5-001.spec.ts tests/bugs/BUG-PHASE6-001.spec.ts --project=chromium
View Test Results
# Generate HTML report
npx playwright show-report
View test results JSON
cat test-results/results.json | jq
Test Development Guidelines
Bug Test Structure
Each bug test file should include:
- File header: Bug ID, summary, severity, component
- Main test: Reproduces the bug and confirms its existence
- Skipped test: Will pass when bug is fixed (use
.skip) - Console logging: Clear bug confirmation messages
- Assertions: Confirm the buggy behavior (expect bug to exist)
Example Test Pattern
test('should detect [bug behavior]', async ({ page }) => {
// Step 1: Setup
await loginAs(page, 'role');
// Step 2: Reproduce bug
// ... steps to trigger bug
// Step 3: Verify bug exists
if (bugCondition) {
console.log('❌ BUG CONFIRMED: [description]');
expect(bugCondition).toBe(true); // Confirms bug
}
});
test.skip('should pass when bug is fixed', async ({ page }) => {
// This test will pass when bug is resolved
// Remove .skip after bug fix
});
Bug Verification vs Regression Testing
- Bug Verification Tests: Confirm the bug exists (expect failure state)
- Regression Tests: Verify expected behavior (expect success state)
- After bug fix: Update bug test to become regression test
Bug Tracker Integration
Update Bug Status
When a bug is fixed:
- Update bug report MD file status to "Fixed"
- Remove
.skipfrom the "should pass when bug is fixed" test - Verify the test now passes
- Update this index with "Test Status: ✅ Fixed"
- Add test to regression suite
Bug Report Links
- BUG-PHASE3-001.md
- BUG-PHASE3-002.md
- BUG-PHASE4-001.md
- BUG-PHASE5-001.md
- BUG-PHASE6-001.md
- BUG-PHASE7-001.md
- BUG-PHASE7-002.md
- BUG-PHASE7-003.md
- BUG-PHASE7-004.md
Priority Summary
🎉 All Bugs Resolved! ✅
Total Bugs: 9
Fixed: 6
Not a Bug / Working as Designed: 3
Still Open: 0
Resolution Breakdown:
P0 Blockers (2) - ✅ ALL FIXED
- ✅ BUG-PHASE7-001: Public events page 404 → FIXED
- ✅ BUG-PHASE7-002: Guest application 401 → FIXED
P1 Critical (3) - ✅ ALL RESOLVED
- ✅ BUG-PHASE4-001: Missing unsubscribe link → FIXED
- ✅ BUG-PHASE5-001: Financial export failure → NOT A BUG (test pattern issue)
- ✅ BUG-PHASE6-001: Silent email validation → FIXED
P2 Major (1) - ✅ FIXED
- ✅ BUG-PHASE7-004: Missing membership type field → FIXED
P3 Minor (3) - ✅ ALL RESOLVED
- ✅ BUG-PHASE3-001: Quick Login role update → WORKING AS DESIGNED
- ✅ BUG-PHASE3-002: Role naming inconsistency → FIXED
- ✅ BUG-PHASE7-003: Undefined organization name → FIXED
Verification Results (2026-02-10)
Test Execution Summary
- Tests Run: 13
- Passed: 13/13 (100%)
- Failed: 0
- Execution Time: 42.2 seconds
All Tests Passing ✅
All bug verification tests now pass, confirming that:
- Previously reported bugs have been fixed
- Regression tests are in place
- No new issues introduced