LM
Leave Manager Plugin
Manual Testing Checklist
0 pass0 fail156 remaining ยท 0%Saved 09:13:51 AM
Test Session
Overall Progress0 / 156 steps completed
0
Pass
0
Fail
156
Remaining
#Action / StepExpected ResultResultComment
1.1.1Navigate to the Login pageLogin form renders without errors
1.1.2Submit with empty fieldsValidation error shown, no redirect
1.1.3Submit with incorrect password"Invalid credentials" error shown
1.1.4Submit with correct staff credentialsRedirect to staff dashboard
1.1.5Submit with correct admin credentialsRedirect to admin dashboard
1.1.6After login, inspect session cookie for HttpOnly flagHttpOnly = true in browser dev tools
1.1.7Navigate to login page while already logged inRedirect to dashboard (no login form shown)
#Action / StepExpected ResultResultComment
1.2.1Click LogoutSession destroyed, redirect to login page
1.2.2After logout, navigate to dashboard URL directlyRedirect to login page (not dashboard)
#Action / StepExpected ResultResultComment
1.3.1Navigate to Reset Password pageForm renders correctly
1.3.2Submit with unregistered email"Email not found" or generic message shown
1.3.3Submit with registered emailSuccess message shown; reset email sent
1.3.4Click reset link from emailPassword reset form shown with token in URL
1.3.5Submit new password on reset formPassword updated; redirect to login
1.3.6Try to reuse the same reset link"Token expired or invalid" error
#Action / StepExpected ResultResultComment
1.4.1Navigate to Change Password pageForm renders correctly
1.4.2Submit with wrong current passwordError message shown
1.4.3Submit with new passwords that do not matchValidation error shown
1.4.4Submit with correct current password and matching new passwordsSuccess message; can log in with new password
#Action / StepExpected ResultResultComment
1.5.1Navigate to Signup pageRegistration form renders
1.5.2Submit with missing required fieldsValidation errors shown
1.5.3Submit with an email already in use"Email already registered" error
1.5.4Submit valid registrationSuccess message; account appears as "Pending" in Staff Management
1.5.5Attempt to log in before approval"Account pending approval" or access denied message
#Action / StepExpected ResultResultComment
2.1.1Log in as a staff member and view dashboardLeave balance cards display correct values
2.1.2Verify Annual Leave balance matches what admin has setCorrect days shown
2.1.3Verify Sick Leave balance is displayedCorrect days shown
2.1.4Recent leave requests section shows last 5 requestsCorrect history shown
#Action / StepExpected ResultResultComment
2.2.1Navigate to Leave Request formForm renders with leave type dropdown
2.2.2Submit with no dates selectedValidation error shown
2.2.3Submit with end date before start dateValidation error shown
2.2.4Submit a valid Annual Leave requestSuccess message; request appears in Leave History with "Pending" status
2.2.5Submit a valid Sick Leave requestSuccess message; request appears in Leave History
2.2.6Submit a request that exceeds available balanceError message shown; request not created
2.2.7Submit a request overlapping an existing approved requestError or warning shown
#Action / StepExpected ResultResultComment
2.3.1Navigate to Leave History pageAll past and current requests listed
2.3.2Filter by status (Pending / Approved / Rejected)List filters correctly
2.3.3Click "View Details" on a requestModal opens with full request details
2.3.4Cancel a Pending requestStatus changes to Cancelled; balance restored
2.3.5Attempt to cancel an Approved requestCancel button not shown or action blocked
#Action / StepExpected ResultResultComment
2.4.1Navigate to Leave Balance pageBalances shown per leave type
2.4.2Verify balances match the dashboard cardsValues are consistent
#Action / StepExpected ResultResultComment
3.1.1Navigate to Calendar pageCalendar renders in month view by default
3.1.2Approved leave requests appear as coloured chips on correct datesChips shown on correct days
3.1.3Hover over a leave chipTooltip shows staff name and leave period (e.g., "John Smith | Mar 5 โ€“ Mar 10")
3.1.4Day with more than 3 people on leave shows "+N more" chip"+N more" chip appears; hover shows all hidden entries
3.1.5Click the Previous/Next navigation arrowsCalendar navigates to previous/next month
3.1.6Click "Today" buttonCalendar returns to current month
#Action / StepExpected ResultResultComment
3.2.1Switch to Week viewCalendar renders week view correctly
3.2.2Leave chips appear on correct daysCorrect staff and dates shown
3.2.3Hover over a chipTooltip shows staff name and leave period
#Action / StepExpected ResultResultComment
3.3.1Switch to List viewTabular list of leave entries renders
3.3.2Leave Type column shows correct type (not hardcoded "Annual")Correct leave type shown per row
3.3.3Click a row in list viewLeave request details modal opens
#Action / StepExpected ResultResultComment
4.1.1Navigate to Team RequestsAll staff leave requests listed
4.1.2Filter by status (Pending / Approved / Rejected)List filters correctly
4.1.3Click "View Details" on any requestModal opens with full request details
4.1.4Pending requests show Approve and Reject buttonsBoth buttons visible
4.1.5Approved requests show Reject and Move to Pending buttonsBoth buttons visible; no Approve button
4.1.6Rejected requests show Approve and Move to Pending buttonsBoth buttons visible; no Reject button
#Action / StepExpected ResultResultComment
4.2.1Click Approve on a Pending requestStatus changes to Approved; leave balance deducted
4.2.2Click Approve on a Rejected requestStatus changes to Approved; leave balance deducted
4.2.3After approving, verify staff member's balance is reduced by correct number of daysBalance reduced correctly
#Action / StepExpected ResultResultComment
4.3.1Click Reject on a Pending requestStatus changes to Rejected; balance not deducted
4.3.2Click Reject on an Approved requestStatus changes to Rejected; leave balance restored
4.3.3After rejecting an approved request, verify staff member's balance is restoredBalance restored correctly
#Action / StepExpected ResultResultComment
4.4.1Click "Move to Pending" on an Approved requestStatus changes to Pending; leave balance restored
4.4.2Click "Move to Pending" on a Rejected requestStatus changes to Pending
4.4.3After moving an approved request to pending, verify balance is restoredBalance restored correctly
#Action / StepExpected ResultResultComment
5.1.1Navigate to Staff ManagementAll active staff listed with correct details
5.1.2Pending signups section shows unapproved registrationsPending accounts listed separately
5.1.3Click on a staff member row to view detailsDetails panel or modal opens with all fields including Position
#Action / StepExpected ResultResultComment
5.2.1Click "Add Staff" buttonAdd Staff modal opens
5.2.2Verify Position field is present in the formPosition input field visible
5.2.3Submit with missing required fieldsValidation errors shown
5.2.4Submit with duplicate email"Email already exists" error
5.2.5Submit valid staff details including PositionStaff created; appears in list with correct Position
#Action / StepExpected ResultResultComment
5.3.1Click Edit on a staff memberEdit Staff modal opens pre-populated with all fields
5.3.2Verify Position field is pre-populatedPosition field shows current value
5.3.3Change the Position field and savePosition updated and visible in staff details
5.3.4Change the Department and saveDepartment updated correctly
5.3.5Change the Role (Staff / Manager / Admin) and saveRole updated; user has correct permissions after re-login
#Action / StepExpected ResultResultComment
5.4.1Click Approve on a pending signupAccount activated; staff can now log in
5.4.2After approval, staff member appears in active staff listStaff visible in main list
5.4.3Approved staff member can log in successfullyLogin succeeds
#Action / StepExpected ResultResultComment
5.5.1Click Delete on a staff memberConfirmation prompt shown
5.5.2Confirm deletionStaff removed; their leave requests and balances also removed (FK cascade)
#Action / StepExpected ResultResultComment
6.1.1Navigate to Reports pagePage loads without errors
6.1.2"Total Staff" card is NOT presentCard removed as requested
6.1.3Total Leave Requests card shows correct countCount matches actual requests in DB
6.1.4Pending Requests card shows correct countCount matches pending requests
6.1.5Approved Requests card shows correct countCount matches approved requests
#Action / StepExpected ResultResultComment
6.2.1Top Leave Takers section displays dataStaff names and leave counts shown (not empty)
6.2.2Staff are ranked in descending order of leave takenHighest leave taker shown first
6.2.3Filter by date range and verify results updateFiltered results shown correctly
#Action / StepExpected ResultResultComment
6.3.1Department Breakdown section displays dataAll departments shown with leave counts
6.3.2Counts are accurate per departmentMatches actual data
#Action / StepExpected ResultResultComment
6.4.1Leave Type Distribution chart rendersChart visible with correct leave types
6.4.2Chart data matches the actual leave requestsAnnual, Sick, Other percentages are correct
#Action / StepExpected ResultResultComment
7.1.1Navigate to Departments pageAll departments listed
7.1.2Department name, code, and manager shownCorrect details displayed
#Action / StepExpected ResultResultComment
7.2.1Click "Add Department"Add Department modal opens
7.2.2Submit with missing nameValidation error shown
7.2.3Submit with duplicate department codeError shown
7.2.4Submit valid departmentDepartment created and appears in list
#Action / StepExpected ResultResultComment
7.3.1Click Edit on a departmentEdit modal opens pre-populated
7.3.2Change name and saveName updated in list
7.3.3Assign a manager and saveManager shown in department row
#Action / StepExpected ResultResultComment
7.4.1Click Delete on a departmentConfirmation prompt shown
7.4.2Confirm deletionDepartment removed; staff in that department have department_id set to NULL (not deleted)
#Action / StepExpected ResultResultComment
8.1.1Navigate to Leave Policies pageAll policies listed
8.1.2Default policy is markedDefault indicator visible
#Action / StepExpected ResultResultComment
8.2.1Click "Add Policy"Add Policy modal opens
8.2.2Submit with missing nameValidation error shown
8.2.3Submit valid policy with annual and sick day allocationsPolicy created and appears in list
#Action / StepExpected ResultResultComment
8.3.1Click Edit on a policyEdit modal opens pre-populated
8.3.2Change annual days and saveUpdated value shown in list
8.3.3Assign policy to a staff memberStaff member's balance reflects new policy
#Action / StepExpected ResultResultComment
8.4.1Delete a policy that has staff assignedStaff members' policy_id set to NULL (not deleted)
8.4.2Delete an unused policyPolicy removed from list
#Action / StepExpected ResultResultComment
9.1.1Navigate to Settings โ†’ EmailEmail settings form renders
9.1.2Enter SMTP credentials and saveSuccess message shown
9.1.3Reload the pageSMTP host, port, and username are retained; password field is blank (encrypted in DB)
9.1.4Save without entering a new passwordExisting encrypted password is preserved (not overwritten with blank)
9.1.5Send a test emailEmail received at the test address
#Action / StepExpected ResultResultComment
9.2.1Navigate to Settings โ†’ Leave PoliciesPolicy settings render
9.2.2Change a setting and saveSetting persists after page reload
#Action / StepExpected ResultResultComment
9.3.1Navigate to Settings โ†’ NotificationsNotification toggles render
9.3.2Toggle a notification on/off and saveSetting persists after page reload
#Action / StepExpected ResultResultComment
9.4.1Navigate to Settings โ†’ AppearanceAppearance settings render
9.4.2Upload a logoLogo appears in the plugin header
9.4.3Change accent colour and saveColour applied to UI elements
#Action / StepExpected ResultResultComment
10.1.1Navigate to Profile page as staffProfile details shown (name, email, department, position)
10.1.2Position field is visiblePosition shown correctly
#Action / StepExpected ResultResultComment
10.2.1Edit name and saveName updated; reflected in header/dashboard
10.2.2Edit phone number and savePhone number updated
#Action / StepExpected ResultResultComment
11.1While logged out, POST to admin-ajax.php with action=leave_manager_approve_requestResponse: authentication error (not success)
11.2While logged in as staff (non-admin), call leave_manager_clear_logsResponse: permission denied
11.3While logged in as staff, call leave_manager_save_email_settingsResponse: permission denied
11.4Navigate directly to a plugin PHP file URL (e.g., /wp-content/plugins/leave-manager/includes/class-admin-ajax-handler.php)Blank page or redirect (ABSPATH guard exits silently)
11.5Enter <script>alert(1)</script> as a staff name and saveScript tag is escaped in all display locations; no alert fires
#Action / StepExpected ResultResultComment
12.1Test all pages in ChromeNo layout breaks or JS errors in console
12.2Test all pages in FirefoxNo layout breaks or JS errors in console
12.3Test dashboard on mobile (375px width)Layout is responsive; no horizontal scroll
12.4Test calendar on mobileCalendar is usable; chips are readable
12.5Test modals on mobileModals open and close correctly; form fields are accessible
#Action / StepExpected ResultResultComment
R1Approve a request, then click "Move to Pending"Status = Pending; balance restored
R2Reject a request, then click "Approve"Status = Approved; balance deducted
R3Add a new staff member with a PositionPosition saved and visible in staff details
R4Edit an existing staff member's PositionPosition updated correctly
R5Register via signup form, then approve in Staff ManagementStaff can log in after approval
R6Hover over a leave chip on the calendarTooltip shows name and date range
R7Switch to list view on calendarLeave Type column shows correct type (not "Annual" for all)
R8Navigate to Reports pageTop Leave Takers section shows data
R9Save SMTP settings, reload pagePassword field is blank but email still sends correctly
R10Approve a request, then reject itBalance is fully restored to pre-approval value
Summary by Section
SectionTotalPassFailRemainingProgress
๐Ÿ” Authentication โ€” Login7007
0%
๐Ÿšช Authentication โ€” Logout2002
0%
๐Ÿ”‘ Authentication โ€” Password Reset6006
0%
๐Ÿ”’ Authentication โ€” Change Password4004
0%
๐Ÿ“ Authentication โ€” Employee Self-Registration5005
0%
๐Ÿ“Š Staff Dashboard โ€” Overview4004
0%
๐Ÿ“ค Staff Dashboard โ€” Submit Leave Request7007
0%
๐Ÿ“‹ Staff Dashboard โ€” Leave History5005
0%
โš–๏ธ Staff Dashboard โ€” Leave Balance2002
0%
๐Ÿ“… Calendar โ€” Month View6006
0%
๐Ÿ“† Calendar โ€” Week View3003
0%
๐Ÿ“ƒ Calendar โ€” List View3003
0%
๐Ÿ‘๏ธ Team Leave Requests โ€” Viewing6006
0%
โœ… Team Leave Requests โ€” Approving3003
0%
โŒ Team Leave Requests โ€” Rejecting3003
0%
๐Ÿ”„ Team Leave Requests โ€” Move to Pending3003
0%
๐Ÿ‘ฅ Staff Management โ€” Viewing3003
0%
โž• Staff Management โ€” Adding Staff5005
0%
โœ๏ธ Staff Management โ€” Editing Staff5005
0%
๐ŸŸข Staff Management โ€” Approving Signups3003
0%
๐Ÿ—‘๏ธ Staff Management โ€” Deleting Staff2002
0%
๐Ÿ“ˆ Reports โ€” Summary Metrics5005
0%
๐Ÿ† Reports โ€” Top Leave Takers3003
0%
๐Ÿข Reports โ€” Department Breakdown2002
0%
๐Ÿฅง Reports โ€” Leave Type Distribution2002
0%
๐Ÿ—๏ธ Departments โ€” Viewing2002
0%
๐Ÿ—๏ธ Departments โ€” Adding4004
0%
๐Ÿ—๏ธ Departments โ€” Editing3003
0%
๐Ÿ—‘๏ธ Departments โ€” Deleting2002
0%
๐Ÿ“œ Leave Policies โ€” Viewing2002
0%
๐Ÿ“œ Leave Policies โ€” Adding3003
0%
๐Ÿ“œ Leave Policies โ€” Editing3003
0%
๐Ÿ—‘๏ธ Leave Policies โ€” Deleting2002
0%
๐Ÿ“ง Settings โ€” Email / SMTP5005
0%
โš™๏ธ Settings โ€” Leave Policies2002
0%
๐Ÿ”” Settings โ€” Notifications2002
0%
๐ŸŽจ Settings โ€” Appearance3003
0%
๐Ÿ‘ค Profile โ€” Viewing2002
0%
โœ๏ธ Profile โ€” Editing2002
0%
๐Ÿ›ก๏ธ Security Spot Checks5005
0%
๐Ÿ“ฑ Cross-Browser & Responsive5005
0%
๐Ÿ” Regression Checks100010
0%
Leave Manager v1.0.102 ยท 156 test cases ยท Progress auto-saved to browser