TC-EVT-002: Event Registration — Free RSVP (Detailed)
USE A REAL EVENT. Wherever this guide says
"QA Test Coffee Meetup", use any real upcoming FREE event from /events instead — the seed always creates a free RCME Check-in Test Event dated today, which is ideal. The old fictional "QA Test …" events do not exist. Sign-in from a public event page opens a login modal (not a full-page redirect).
TC-REG-FREE-01: Member RSVP for Free Event
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Open a browser and navigate to the login page. | Login page loads. | https://stg-rcme.membervu.com/login |
| 2 | Log in as the test member (Maria Cruz). | Dashboard loads. | testmember@rcme.membervu.com / Member123! |
| 3 | Click "Events" in the sidebar. | Events catalog loads with upcoming events. | — |
| 4 | Find and click on "QA Test Coffee Meetup". | Event detail page loads. Shows: title, date (next Saturday), time (10:00 AM), venue (The Brewery at The Palace). Price shows "FREE" or no price. An "RSVP" or "Register" button is visible. | QA Test Coffee Meetup |
| 5 | Click the "RSVP" or "Register" button. | A confirmation dialog may appear, or registration happens immediately. You should see a success message: "You're registered!" or similar toast notification. | — |
| 6 | Observe the event detail page after registration. | The "Register" button is replaced with a "Registered" badge or status. Buttons like "Cancel Registration" or "View Ticket" may now appear. | — |
| 7 | Open a new tab and navigate to MailHog. | MailHog inbox loads. | https://stg-webmail.membervu.com |
| 8 | Find and click the confirmation email sent to testmember@rcme.membervu.com. |
Email contains: event name ("QA Test Coffee Meetup"), date, time, venue, and possibly a ticket code (e.g., TIX-XXXX). |
— |
| 9 | Go back to the app. Navigate to "My Events" or "My Registrations" (sidebar or profile section). | "QA Test Coffee Meetup" appears in the list of registered events with status "Confirmed" or "Registered". | — |
TC-REG-FREE-02: Cancel RSVP
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | While logged in as testmember, navigate to the "QA Test Coffee Meetup" event detail page. | Event detail page loads. You see a "Cancel Registration" or "Cancel RSVP" button. | QA Test Coffee Meetup |
| 2 | Click "Cancel Registration" or "Cancel RSVP". | A confirmation dialog appears asking you to confirm cancellation. | — |
| 3 | Click "Confirm" or "Yes, Cancel". | Success message: "Registration cancelled" or similar. The page reverts to showing a "Register" / "RSVP" button again. | — |
| 4 | Check MailHog for a cancellation email. | A cancellation confirmation email should be sent to testmember@rcme.membervu.com with the event name and cancellation details. |
https://stg-webmail.membervu.com |
| 5 | Navigate to "My Events". | "QA Test Coffee Meetup" should no longer appear in active registrations, or it should show a "Cancelled" status. | — |
TC-REG-FREE-03: Re-Register After Cancellation
🆕 #637 — active-only unique index (reverses #448 reactivate-in-place). The unique constraint on
EventRegistration is now partial / active-only: (tenantId, eventId, attendeeMemberId) WHERE status <> 'CANCELLED'. Cancelling and re-registering for the same event now inserts a brand-new row (new id) instead of reactivating the old one. Because the free-event check-in code is a deterministic hash of registration.id, the re-registration gets a fresh check-in code / QR — different from the one issued before cancellation. The cancelled row is retained for audit history, not deleted.
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Before cancelling, open the My Ticket tab for your existing "QA Test Coffee Meetup" registration and note/copy the check-in code (and/or screenshot the QR). | A check-in code is displayed, e.g. A1B2C3. Record this value — it is the "before" code. | QA Test Coffee Meetup |
| 2 | Cancel the registration (see TC-REG-FREE-02), then navigate back to the "QA Test Coffee Meetup" event detail page. | Registration status is CANCELLED; the spot frees up (capacity count increases by 1). The "RSVP" or "Register" button is available again. |
— |
| 3 | Click "RSVP" or "Register". | Registration succeeds. Success message appears. Per #637, the backend inserts a new EventRegistration row (new id) rather than reactivating the cancelled one. |
— |
| 4 | Open the My Ticket tab again and compare the new check-in code / QR to the one recorded in Step 1. | The check-in code is different from the "before" value (e.g. D4E5F6 ≠ A1B2C3) — a fresh row means a fresh code. It is not byte-identical to the pre-cancellation code. | — |
| 5 | Verify "My Events" shows the event again. | "QA Test Coffee Meetup" appears with "Confirmed" status, tied to the new registration row. | — |
| 6 | (If admin access available) Check the event's Registration tab / attendance list for this member's history. | Both the original CANCELLED registration and the new active registration are visible — the cancelled row is retained, not deleted. Multiple CANCELLED rows can coexist for the same member+event over repeated cancel/re-register cycles. |
— |
| 7 | While the new registration is active, attempt to register again for the same event (re-click "Register" if still exposed, or call POST /api/events/:id/register directly). |
No duplicate active row is created — the idempotency guard returns the existing active registration (only one non-cancelled row per member+event is ever allowed). | — |
TC-REG-FREE-04: Already Registered — Duplicate Prevention
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Navigate to the "QA Test Coffee Meetup" event detail page (you should already be registered from TC-REG-FREE-03). | Event detail page loads. | QA Test Coffee Meetup |
| 2 | Look at the action buttons. | You should see "Registered" status and/or "Cancel Registration". The "Register" button should NOT be present. | — |
| 3 | If a "Register" button is still visible, click it. | System blocks the action with: "You are already registered" or shows existing registration without creating a duplicate. | — |
TC-REG-FREE-05: Guest User RSVP for Public Free Event
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log out of testmember. Log in as the guest user (Roberto Mendoza). | Dashboard loads for guest. | guest@demo.membervu.com / Guest123! |
| 2 | Navigate to "Events" and find "QA Test Coffee Meetup". | The PUBLIC free event is visible to the guest user. | QA Test Coffee Meetup |
| 3 | Click on the event to open its detail page. | Event detail page loads. An "RSVP" or "Register" button is visible. | — |
| 4 | Click "RSVP" or "Register". | Registration succeeds with a success message. Guest users should be able to RSVP for public free events. | — |
| 5 | Check MailHog for confirmation email sent to guest@demo.membervu.com. |
Confirmation email received with event details. | https://stg-webmail.membervu.com |
TC-REG-FREE-06: Expired Member RSVP Behavior
WARNING: Expired members may or may not be allowed to register for free events depending on the tenant configuration. Document the actual behavior observed.
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log out. Log in as the expired member. | Dashboard loads (may show expired membership notice). | expired@demo.membervu.com / Expired123! |
| 2 | Navigate to Events and find "QA Test Coffee Meetup". | The PUBLIC event should be visible. | QA Test Coffee Meetup |
| 3 | Click on the event and attempt to RSVP. |
Option A: Registration succeeds (expired members allowed for free events). Option B: Registration blocked with message like "Your membership has expired" or "Please renew your membership." Record which behavior you observe. |
— |
| 4 | Log out of the expired account. | Redirected to login page. | — |
CLEANUP
Registrations created during this test:
- testmember@rcme.membervu.com registered for "QA Test Coffee Meetup" (keep for TC-EVT-006 check-in tests)
- guest@demo.membervu.com registered for "QA Test Coffee Meetup" (keep for TC-EVT-006)
- expired@demo.membervu.com may be registered for "QA Test Coffee Meetup" (cancel if desired)
Do NOT cancel the testmember and guest registrations if you plan to run TC-EVT-006 (Check-in & Attendance).