Overview
Manual testing checklist for the onboarding flow feature (merged in #[PR_NUMBER]).
Testing Environment: Production
Method: Email aliases forwarding to admin inbox
Progress Tracker
Test Accounts
Existing Aliases
webmaster@doulacooperative.com / test1234
test-new-member@doulacooperative.com / test1234
test-existing-member@doulacooperative.com / test1234
Recommended New Aliases
test-slug-conflict@doulacooperative.com
test-slug-conflict-2@doulacooperative.com
test-special-chars@doulacooperative.com
test-edge-case@doulacooperative.com
Stripe Test Card: 4242 4242 4242 4242
Scenario 1: Happy Path - First Profile
Goal
Verify basic onboarding flow works end-to-end
Setup
- Sign up with
test-new-member@doulacooperative.com / test1234
- Name: "Sarah O'Connor"
- Complete Stripe checkout
- Wait for membership activation
Test Steps
Verify Results
Expected: sarah-oconnor
Scenario 2: Slug Conflicts - Numeric Suffixes
Goal
Verify system handles duplicate names correctly
Test 2A: First "Jane Smith"
Test 2B: Second "Jane Smith"
Test 2C: Third "Jane Smith"
Verify
Scenario 3: Special Characters & Accents
Goal
Verify slug generation handles international names
3A: Accented Characters
3B: Nordic Characters
3C: German Characters
3D: Special Characters
Scenario 4: Edge Cases
Goal
Test boundary conditions
4A: Name with Emoji
4B: Very Long Name
4C: Name with Numbers
4D: Empty Name
Scenario 5: Banner Display Logic
Goal
Verify banner only shows when appropriate
5A: No Active Membership
5B: Already Has Slug
5C: All Conditions Met
Scenario 6: Error Handling
Goal
Verify user-friendly error messages
6A: Race Condition
6B: Network Error
Scenario 7: Slug Immutability
Goal
Verify slug cannot be changed after creation
Scenario 8: Profile Editor Access
Goal
Verify proper redirects/guards
8A: User Without Slug
8B: User With Slug
Scenario 9: Regression Testing
Goal
Ensure existing features still work
9A: Claim Profile
9B: Edit Existing Profile
Final Verification Checklist
After all scenarios:
Helpful Commands & Tips
Delete slug for retesting:
- Firebase Console → Firestore
- Find member doc by email
- Delete
slug field
- Refresh
/membership page
Check GitHub files:
hugo/content/doulas/{slug}/index.md
Implementation notes:
- Slug pattern:
^[a-z0-9]+(-[a-z0-9]+)*$
- Slugs are immutable (prevents broken links)
- Transaction prevents race conditions
- NFD normalization: é→e, ñ→n, ø→o, æ→ae, ß→ss
Related
Overview
Manual testing checklist for the onboarding flow feature (merged in #[PR_NUMBER]).
Testing Environment: Production
Method: Email aliases forwarding to admin inbox
Progress Tracker
Test Accounts
Existing Aliases
webmaster@doulacooperative.com/test1234test-new-member@doulacooperative.com/test1234test-existing-member@doulacooperative.com/test1234Recommended New Aliases
test-slug-conflict@doulacooperative.comtest-slug-conflict-2@doulacooperative.comtest-special-chars@doulacooperative.comtest-edge-case@doulacooperative.comStripe Test Card:
4242 4242 4242 4242Scenario 1: Happy Path - First Profile
Goal
Verify basic onboarding flow works end-to-end
Setup
test-new-member@doulacooperative.com/test1234Test Steps
/membership/profileVerify Results
slug: "sarah-oconnor"hugo/content/doulas/sarah-oconnor/index.mdExpected:
sarah-oconnorScenario 2: Slug Conflicts - Numeric Suffixes
Goal
Verify system handles duplicate names correctly
Test 2A: First "Jane Smith"
test-slug-conflict@doulacooperative.comjane-smithTest 2B: Second "Jane Smith"
test-slug-conflict-2@doulacooperative.comjane-smith-2Test 2C: Third "Jane Smith"
test-existing-member@doulacooperative.comjane-smith-3Verify
Scenario 3: Special Characters & Accents
Goal
Verify slug generation handles international names
3A: Accented Characters
maria-jose-garcia3B: Nordic Characters
soren-kierkegard3C: German Characters
gunther-muller3D: Special Characters
mary-anne-obrien-smithScenario 4: Edge Cases
Goal
Test boundary conditions
4A: Name with Emoji
sarah-smith(emoji stripped)4B: Very Long Name
4C: Name with Numbers
sarah-smith-2nd4D: Empty Name
Scenario 5: Banner Display Logic
Goal
Verify banner only shows when appropriate
5A: No Active Membership
/membership5B: Already Has Slug
/membership5C: All Conditions Met
/membershipScenario 6: Error Handling
Goal
Verify user-friendly error messages
6A: Race Condition
6B: Network Error
Scenario 7: Slug Immutability
Goal
Verify slug cannot be changed after creation
/membershipScenario 8: Profile Editor Access
Goal
Verify proper redirects/guards
8A: User Without Slug
/profile/membership8B: User With Slug
/profileScenario 9: Regression Testing
Goal
Ensure existing features still work
9A: Claim Profile
webmaster@doulacooperative.com9B: Edit Existing Profile
/profile, edit and saveFinal Verification Checklist
After all scenarios:
^[a-z0-9]+(-[a-z0-9]+)*$Helpful Commands & Tips
Delete slug for retesting:
slugfield/membershippageCheck GitHub files:
hugo/content/doulas/{slug}/index.mdImplementation notes:
^[a-z0-9]+(-[a-z0-9]+)*$Related
docs/testing-onboarding.md