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: https://stg-rcme.membervu.com
Member profile lives under My Account → Profile (/account/profile). Admin full edit is at /admin/members/:id/edit.

TC-PROF-01: View Own Profile

StepActionExpected ResultTest Value
1Log in as Maria Cruz at /login.Member dashboard loads.testmember@rcme.membervu.com / Member123!
2Sidebar My AccountProfile 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.-
3Verify 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)

StepActionExpected ResultTest Value
1On /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
2Set 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.-
3Click 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

StepActionExpected ResultTest Value
1In the Profile Photo card, click "Upload Photo", pick a JPG/PNG (hint: "JPG or PNG, max 5MB").A crop modal opens.-
2Confirm 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

StepActionExpected ResultTest Value
1Clear a required field (First or Last Name) → Save Changes.Validation error; not saved.-
2Enter a malformed LinkedIn URL (no "linkedin.com") → Save.Rejected (LinkedIn must contain "linkedin.com").-
3Restore valid values → Save.Saves.-
PASS if: invalid input is rejected, valid saves.

TC-PROF-05: Admin Edits Member Profile + Joined Date (#184)

StepActionExpected ResultTest Value
1Log in as admin → Members → All Members → click Maria Cruz"Edit Profile" (/admin/members/:id/edit).Full admin edit form loads with all fields.-
2In "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)

StepActionExpected ResultTest Value
1As 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.