Step-by-Step Guide — Follow each step exactly as written. Every value you need to type is spelled out. Do not improvise.
TC-MEM-001: Member Profile Management (Detailed)
Member: testmember@rcme.membervu.com / Member123! (Maria Cruz) · Admin: admin@rcme.membervu.com / Admin123!
URL:
Member profile lives under My Account → Profile (
https://stg-rcme.membervu.comMember profile lives under My Account → Profile (
/account/profile). Admin full edit is at /admin/members/:id/edit.
TC-PROF-01: View Own Profile
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log in as Maria Cruz at /login. | Member dashboard loads. | testmember@rcme.membervu.com / Member123! |
| 2 | Sidebar My Account → Profile tab (/account/profile). | Profile loads with: First/Last/Middle name, Suffix, Date of Birth, Gender, Email, Phone, Home/Work phone, Address, Profession, Company, LinkedIn, Other socials, and a Profile Photo card. | - |
| 3 | Verify her data. | Name "Maria Cruz", email testmember@rcme.membervu.com. | - |
PASS if: the Profile tab loads with the member's data.
TC-PROF-02: Edit Profile (incl. international phone #182)
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | On /account/profile, set Phone using the international input (country selector) to +63 917 555 1234. | Number accepted in E.164 form. | +63 917 555 1234 |
| 2 | Set Address = 123 Ayala Avenue, Makati City; LinkedIn = https://linkedin.com/in/maria-cruz-test; Date of Birth = 1990-03-15; Profession = Engineer. | Fields accept values; "Save Changes" enables. | - |
| 3 | Click Save Changes, then refresh (F5). | Toast/success; all values persist after reload (phone in particular — #182). | - |
Note: there is no "Bio/About" field on the current profile form — do not test for one.
PASS if: edits save and persist.
TC-PROF-03: Avatar Upload
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | In the Profile Photo card, click "Upload Photo", pick a JPG/PNG (hint: "JPG or PNG, max 5MB"). | A crop modal opens. | - |
| 2 | Confirm the crop / save. | Toast "Profile photo updated!". Image displays immediately and persists after refresh — stored as an S3 key (#199), not a data URI. | - |
PASS if: avatar uploads, crops, displays, and persists.
TC-PROF-04: Validation
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Clear a required field (First or Last Name) → Save Changes. | Validation error; not saved. | - |
| 2 | Enter a malformed LinkedIn URL (no "linkedin.com") → Save. | Rejected (LinkedIn must contain "linkedin.com"). | - |
| 3 | Restore valid values → Save. | Saves. | - |
PASS if: invalid input is rejected, valid saves.
TC-PROF-05: Admin Edits Member Profile + Joined Date (#184)
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log in as admin → Members → All Members → click Maria Cruz → "Edit Profile" (/admin/members/:id/edit). | Full admin edit form loads with all fields. | - |
| 2 | In "Membership Information", change "Member Since (Joined Date)" (≤ today). Save. | Saved (PATCH .../members/:id with joinedAt); written to the member audit log. | - |
PASS if: admin can edit the profile and the joined date.
TC-PROF-06: View Another Member (Directory)
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | As Maria Cruz, sidebar Directory → search and open another member (e.g. Ana Reyes). | Read-only detail: name, key dates, membership, socials — per the directory's public view. | - |
PASS if: another member's directory detail opens read-only.
CLEANUP
Restore Maria Cruz's profile fields you changed in TC-PROF-02 / TC-PROF-05 (or reseed:
docker exec membervu-backend npm run seed:rcme). The uploaded avatar can stay.