Step-by-Step Guide — Follow each step exactly as written. Every value you need to type is spelled out. Do not improvise.
TC-MEM-003: Admin Member Controls (Detailed)
Admin: admin@rcme.membervu.com / Admin123! · Target Member: Maria Cruz (testmember@rcme.membervu.com / Member123!)
URL:
https://stg-rcme.membervu.com
UI model:
/admin/members is a list + split-view. Click a member → the right detail panel opens. Admin actions are under the header's "Actions ▾" menu (Reset Password / Change Status / Manage Roles / Change Membership Type) + an "Edit Profile" button. There are no per-row Suspend/Reactivate buttons.
WARNING: this test suspends a member. Complete the cleanup so the account is restored to ACTIVE.
TC-CTRL-01: Suspend a Member (Change Status)
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log in as admin at https://stg-rcme.membervu.com/login. | Admin dashboard loads. | admin@rcme.membervu.com / Admin123! |
| 2 | Sidebar Members → All Members. Click Maria Cruz (status ACTIVE). | Her detail panel opens on the right. | - |
| 3 | Click "Actions ▾" → "Change Status". | "Change Member Status" modal; offers Suspend Member / Deactivate Member. | - |
| 4 | Select Suspend Member. In the required "Reason *" field type QA Test - temporary suspension. Click "Suspend Member". | Status → SUSPENDED. Her sessions are revoked and a notification email is sent. | QA Test - temporary suspension |
PASS if: ACTIVE → SUSPENDED with the reason recorded.
TC-CTRL-02: Suspended Member Access Is Blocked
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Log out. In an incognito window, log in as Maria Cruz (testmember@rcme.membervu.com / Member123!). | Login is blocked or redirects to a "suspended account" view (sessions were revoked at suspend time). | - |
PASS if: the suspended member cannot use the app normally.
TC-CTRL-03: Reactivate a Suspended Member
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | As admin, open Maria Cruz (SUSPENDED) → "Actions ▾" → "Change Status" → "Reactivate Member" (no reason) → confirm. | Status → ACTIVE. | - |
| 2 | Log in as Maria Cruz again. | Login succeeds; dashboard loads normally. | - |
PASS if: SUSPENDED → ACTIVE and the member can log in.
TC-CTRL-04: Manage Roles
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Open Maria Cruz → "Actions ▾" → "Manage Roles" (ADMIN only). | "Manage Roles" modal with 6 built-in staff-role cards (Administrator, Officer, Treasurer, Events Manager, Membership Manager, Communications). Current roles chip shows MEMBER. | - |
| 2 | Check "Officer" → "Save Roles". | Calls PUT /api/membership/members/:id/roles. Chips now show MEMBER + OFFICER. | OFFICER |
| 3 | Reopen Manage Roles → uncheck Officer → Save Roles. | Only MEMBER remains. | - |
Note: the modal lists only the 6 built-in staff roles — custom roles can't be assigned here (API only). "Treasurer" is the display name for the
FINANCE_MANAGER role.PASS if: OFFICER was added then removed.
TC-CTRL-05: Audit Log
| Step | Action | Expected Result | Test Value |
|---|---|---|---|
| 1 | Open Maria Cruz → Member ID tab (ADMIN) / audit view. | Audit entries for: Suspended (with reason), Reactivated, Role Added: OFFICER, Role Removed: OFFICER — each with actor (Admin User) + timestamp. | - |
PASS if: the audit log shows timestamped entries for the above actions.
CLEANUP — Read Before You Stop
- Maria Cruz is ACTIVE (reactivate her if TC-CTRL-03 wasn't completed).
- Maria Cruz has only the MEMBER role (remove OFFICER if still present).
- Verify by logging in as
testmember@rcme.membervu.com/Member123!— login should succeed.