Settings & Profile
QA test plan covering profile settings, account management, security, privacy, notifications, social connections, and public profile views.
Profile Settings
Section titled “Profile Settings”Route: /settings/profile
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-P-001 | Update display name | Logged in | 1. Navigate to /settings/profile 2. Change name field 3. Click Save | Name updates successfully; toast confirmation shown | P0 |
| SET-P-002 | Update username with valid unique value | Logged in | 1. Enter a new unique username 2. Click Save | Username updates; profile URL changes to new username | P0 |
| SET-P-003 | Reject duplicate username | Logged in; another user has username “taken123” | 1. Enter “taken123” as username 2. Click Save | Error message indicating username is already taken | P0 |
| SET-P-004 | Reject invalid username characters | Logged in | 1. Enter username with spaces or special characters 2. Attempt save | Validation error; only alphanumeric and underscores allowed | P1 |
| SET-P-005 | Update bio | Logged in | 1. Enter bio text 2. Click Save | Bio updates and displays on public profile | P1 |
| SET-P-006 | Update bio with max length | Logged in | 1. Enter bio exceeding character limit 2. Attempt save | Validation prevents exceeding max length | P2 |
| SET-P-007 | Update website URL | Logged in | 1. Enter a valid URL in website field 2. Click Save | Website link saved and clickable on profile | P1 |
| SET-P-008 | Reject invalid website URL | Logged in | 1. Enter “not-a-url” in website field 2. Attempt save | Validation error for invalid URL format | P2 |
| SET-P-009 | Update country | Logged in | 1. Select country from dropdown 2. Click Save | Country updates and displays on profile | P1 |
| SET-P-010 | Update city | Logged in | 1. Enter city name 2. Click Save | City updates and displays on profile | P1 |
| SET-P-011 | Update category | Logged in | 1. Select category from options 2. Click Save | Category saved; reflected on profile | P1 |
| SET-P-012 | Upload profile avatar | Logged in | 1. Click avatar upload 2. Select image file 3. Save | Avatar updates; new image shown on profile and settings | P0 |
| SET-P-013 | Clear optional fields | Logged in; bio, website, city populated | 1. Clear bio, website, and city fields 2. Click Save | Fields cleared; no longer shown on public profile | P2 |
Account Settings
Section titled “Account Settings”Route: /settings/account
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-A-001 | Display current email | Logged in | 1. Navigate to /settings/account | Current email address is displayed | P0 |
| SET-A-002 | Change email address | Logged in | 1. Enter new email 2. Confirm 3. Verify via email link | Email updates after verification; confirmation toast shown | P0 |
| SET-A-003 | Reject invalid email format | Logged in | 1. Enter “invalid-email” 2. Attempt save | Validation error for invalid email | P1 |
| SET-A-004 | Delete account | Logged in | 1. Click “Delete Account” 2. Confirm in modal 3. Enter password | Account deleted; user logged out and redirected to home | P0 |
| SET-A-005 | Cancel account deletion | Logged in | 1. Click “Delete Account” 2. Click Cancel in confirmation modal | Modal closes; no changes made | P1 |
| SET-A-006 | Reject account deletion with wrong password | Logged in | 1. Click “Delete Account” 2. Enter incorrect password 3. Confirm | Error message; account not deleted | P0 |
Security Settings
Section titled “Security Settings”Route: /settings/security
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-S-001 | Change password | Logged in | 1. Enter current password 2. Enter new password 3. Confirm new password 4. Submit | Password updated; confirmation shown | P0 |
| SET-S-002 | Reject password change with wrong current password | Logged in | 1. Enter incorrect current password 2. Enter new password 3. Submit | Error: “Incorrect current password” | P0 |
| SET-S-003 | Reject weak new password | Logged in | 1. Enter current password 2. Enter “123” as new password 3. Submit | Validation error for weak password | P1 |
| SET-S-004 | Reject mismatched password confirmation | Logged in | 1. Enter new password 2. Enter different confirmation 3. Submit | Validation error: passwords do not match | P1 |
| SET-S-005 | View active sessions | Logged in | 1. Navigate to /settings/security | List of active sessions displayed with device/browser info | P1 |
| SET-S-006 | Revoke a session | Logged in; multiple active sessions | 1. Click “Revoke” on a session 2. Confirm | Session revoked; removed from list | P1 |
| SET-S-007 | Revoke all other sessions | Logged in; multiple active sessions | 1. Click “Revoke All Other Sessions” 2. Confirm | All sessions except current are revoked | P2 |
Privacy Settings
Section titled “Privacy Settings”Route: /settings/privacy
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-PR-001 | Enable follower approval | Logged in | 1. Toggle follower approval ON 2. Save | New follow requests require manual approval | P0 |
| SET-PR-002 | Disable follower approval | Logged in; approval enabled | 1. Toggle follower approval OFF 2. Save | New followers are accepted automatically | P0 |
| SET-PR-003 | Approve pending follow request | Follower approval enabled; pending request exists | 1. View pending requests 2. Click Approve | Follower added; requestor sees following status | P0 |
| SET-PR-004 | Reject pending follow request | Follower approval enabled; pending request exists | 1. View pending requests 2. Click Reject | Request removed; requestor not added as follower | P1 |
| SET-PR-005 | Set profile visibility to private | Logged in | 1. Set profile visibility to private 2. Save | Non-followers see limited profile; posts hidden | P0 |
| SET-PR-006 | Set profile visibility to public | Logged in; profile is private | 1. Set profile visibility to public 2. Save | All users can view full profile and posts | P0 |
| SET-PR-007 | Restrict DM permissions | Logged in | 1. Set DMs to “Followers only” 2. Save | Non-followers cannot initiate DM conversations | P1 |
| SET-PR-008 | Allow DMs from everyone | Logged in | 1. Set DMs to “Everyone” 2. Save | Any user can initiate DM conversations | P1 |
| SET-PR-009 | Block a user | Logged in; viewing another user’s profile | 1. Click Block 2. Confirm | User blocked; cannot view your profile or message you | P0 |
| SET-PR-010 | Unblock a user | Logged in; user is blocked | 1. Navigate to blocked users list 2. Click Unblock | User unblocked; can view profile and message again | P0 |
| SET-PR-011 | Blocked user cannot view blocker’s profile | User A has blocked User B | 1. Log in as User B 2. Navigate to User A’s profile | Profile not accessible; appropriate message shown | P0 |
Notifications Settings
Section titled “Notifications Settings”Route: /settings/notifications
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-N-001 | Toggle email notifications | Logged in | 1. Toggle email notifications OFF 2. Save | No email notifications sent for new activity | P1 |
| SET-N-002 | Toggle push notifications | Logged in | 1. Toggle push notifications OFF 2. Save | No push notifications sent | P1 |
| SET-N-003 | Toggle notification by type (likes) | Logged in | 1. Disable “Likes” notifications 2. Save | No notifications for likes; other types still active | P1 |
| SET-N-004 | Toggle notification by type (comments) | Logged in | 1. Disable “Comments” notifications 2. Save | No notifications for comments | P1 |
| SET-N-005 | Toggle notification by type (follows) | Logged in | 1. Disable “Follows” notifications 2. Save | No notifications for new followers | P1 |
| SET-N-006 | Toggle notification by type (messages) | Logged in | 1. Disable “Messages” notifications 2. Save | No notifications for new messages | P1 |
| SET-N-007 | Enable all notification types | Logged in; some disabled | 1. Enable all notification types 2. Save | All notification types active | P2 |
| SET-N-008 | Settings persist after logout/login | Logged in; custom notification settings | 1. Log out 2. Log back in 3. Check notification settings | Previously saved settings are preserved | P1 |
Social Settings
Section titled “Social Settings”Route: /settings/social
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-SO-001 | Connect Google account | Logged in; no Google account linked | 1. Click “Connect Google” 2. Complete Google OAuth flow | Google account linked; shown as connected | P0 |
| SET-SO-002 | Disconnect Google account | Logged in; Google account linked | 1. Click “Disconnect” on Google account | Google account unlinked; option to reconnect shown | P1 |
| SET-SO-003 | View connected accounts | Logged in | 1. Navigate to /settings/social | List of connected/available social accounts displayed | P1 |
| SET-SO-004 | Google OAuth failure handling | Logged in | 1. Click “Connect Google” 2. Cancel/deny OAuth prompt | Returned to settings with error message; no account linked | P2 |
Profile View
Section titled “Profile View”Route: /profile/[username]
| ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| SET-PV-001 | View own public profile | Logged in | 1. Navigate to /profile/[own-username] | Profile displays name, avatar, bio, stats | P0 |
| SET-PV-002 | View another user’s profile | Logged in | 1. Navigate to /profile/[other-username] | Public profile displayed with follow button | P0 |
| SET-PV-003 | View profile blog tab | Viewing a profile | 1. Click “Blog” tab | User’s blog posts displayed | P1 |
| SET-PV-004 | View profile store tab | Viewing a profile with store | 1. Click “Store” tab | User’s products displayed | P1 |
| SET-PV-005 | View profile plans tab | Viewing a profile with plans | 1. Click “Plans” tab | User’s subscription plans displayed | P1 |
| SET-PV-006 | View followers tab | Viewing a profile | 1. Click “Followers” tab | List of followers displayed | P1 |
| SET-PV-007 | View following tab | Viewing a profile | 1. Click “Following” tab | List of accounts user follows displayed | P1 |
| SET-PV-008 | View links tab | Viewing a profile with links | 1. Click “Links” tab | User’s links displayed | P2 |
| SET-PV-009 | View book tab | Viewing a profile with book | 1. Click “Book” tab | User’s booking page or book content displayed | P2 |
| SET-PV-010 | Follow user from profile | Logged in; not following target user | 1. Click “Follow” button | Following status updates; follower count increments | P0 |
| SET-PV-011 | Unfollow user from profile | Logged in; following target user | 1. Click “Unfollow” button 2. Confirm | Following status updates; follower count decrements | P0 |
| SET-PV-012 | View non-existent profile | Logged in | 1. Navigate to /profile/nonexistent-user-xyz | 404 page or “User not found” message displayed | P1 |
| SET-PV-013 | View private profile as non-follower | Logged in; target profile is private; not following | 1. Navigate to private user’s profile | Limited profile shown; posts/tabs hidden; follow request option shown | P0 |