0% found this document useful (0 votes)
156 views68 pages

Book 2

The document outlines a series of test cases for various functionalities related to an admin interface, including password recovery, login/logout processes, service creation, and category management. Each test case includes a unique ID, description, and specific steps to validate the functionality. The tests cover scenarios such as valid and invalid inputs, UI behavior, and system responses to ensure robust application performance.

Uploaded by

anissarwar788
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
156 views68 pages

Book 2

The document outlines a series of test cases for various functionalities related to an admin interface, including password recovery, login/logout processes, service creation, and category management. Each test case includes a unique ID, description, and specific steps to validate the functionality. The tests cover scenarios such as valid and invalid inputs, UI behavior, and system responses to ensure robust application performance.

Uploaded by

anissarwar788
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
You are on page 1/ 68

Test Case ID Description Steps

Forgot Password (Admin)


1. Open "Forgot Password" 2.
Valid Email
TC_FP_001 Enter a registered emai
Submission
l3. Click "Submit"
1. Open "Forgot Password"
Invalid Email
TC_FP_002 2. Enter an unregistered email
Submission
3. Click "Submit"
1. Open "Forgot Password"2. Leave email
TC_FP_003 Empty Email Field
field blank3. Click "Submit"
OTP Sent & Timer
TC_FP_004 After valid email submission
Starts
OTP Verification - 1. Enter valid OTP within 90 seconds
TC_FP_005
Valid 2. Click Verify
OTP Verification - 1. Wait >90 seconds
TC_FP_006
Expired 2. Enter OTP and click Verify
OTP Verification - 1. Enter random/incorrect OTP
TC_FP_007
Invalid 2. Click Verify

TC_FP_008 Resend OTP Limit Tap “Resend OTP” more than 3 times

Resend OTP 1. Wait 90 seconds


TC_FP_009
Functionality 2. Tap “Resend OTP”

Disable “Resend OTP” During 90 seconds, check if “Resend OTP”


TC_FP_010
during countdown button is disabled

1. Enter matching new password &


Password Reset - confirm 2.
TC_FP_011
Valid Input Meet policy: 8+ chars, 1 uppercase, 1
number, 1 symbol3. Click Submit

1. Enter new password


Password Reset -
TC_FP_012 2. Confirm with different value
Mismatch
3. Click Submit
Password Reset - 1. Enter short or invalid password2. Click
TC_FP_013
Weak Password Submit
Empty Password Leave both password and confirm fields
TC_FP_014
Fields empty
Try to go back to OTP/email page after
TC_FP_015 Back Navigation Block reaching password screen (optional
security test)
Login (Admin)
Test Case ID Test Scenario Test Steps
1. Go to Admin Login page
TC_ADM_LOGIN Successful login with 2. Enter valid email
_001 valid credentials 3. Enter correct password
4. Click on "Login" button
1. Enter valid email
TC_ADM_LOGIN Login with incorrect
2. Enter incorrect password
_002 password
3. Click on "Login"
1. Enter invalid or unregistered email
TC_ADM_LOGIN Login with incorrect
2. Enter valid password
_003 email
3. Click "Login"
Attempt login with 1. Enter invalid email
TC_ADM_LOGIN
both email and 2. Enter invalid password
_004
password incorrect 3. Click "Login"
TC_ADM_LOGIN Attempt login with 1. Leave email and password blank
_005 empty fields 2. Click "Login"
1. Enter valid email
TC_ADM_LOGIN Attempt login with
2. Leave password field blank
_006 only email
3. Click "Login"
TC_ADM_LOGIN Attempt login with 1. Leave email field blank 2. Enter
_007 only password password 3. Click "Login"
1. Enter improperly formatted email (e.g.,
TC_ADM_LOGIN
Validate email format missing @, domain etc.)
_008
2. Click "Login"
TC_ADM_LOGIN Password field is 1. Focus on password field
_009 masked 2. Check entered characters
1. Enter same email with different case
TC_ADM_LOGIN Check case sensitivity (e.g., UPPER/lower)
_010 in email 2. Enter correct password
3. Click "Login"

1. Enter correct email 2. Enter password


TC_ADM_LOGIN Check case sensitivity
with incorrect casing (e.g., capital letter
_011 in password
mistake) 3. Click "Login"
Show error after
TC_ADM_LOGIN Try logging in with wrong credentials
multiple failed login
_012 multiple times (e.g., 5 times)
attempts
TC_ADM_LOGIN Check redirection 1. Enter valid credentials
_013 post successful login 2. Click "Login"
1. Copy dashboard URL after login
TC_ADM_LOGIN Check URL security
2. Log out
_014 after login
3. Paste URL in browser
1. Check "Remember me" option (if
Remember me / stay available)
TC_ADM_LOGIN
signed in (if 2. Log in
_015
implemented) 3. Close and reopen
browser
Logout (Admin)
TC_LOGOUT_00 Tap on the "Logout" button from the
Tap on Logout button
1 profile/settings/dashboard screen
TC_LOGOUT_00 Session token Log out and try to perform any API
2 invalidation request with the old access token
TC_LOGOUT_00 Clear cached sensitive
Log out and inspect app memory/storage
3 data

TC_LOGOUT_00
Redirect after logout Tap logout
4
TC_LOGOUT_00 Display success
Tap logout
5 message
TC_LOGOUT_00 Back navigation
Tap logout, then press back button
6 blocked after logout
Multi-device logout
TC_LOGOUT_00
session handling (if Login from two devices, logout from one
7
applicable)
TC_LOGOUT_00 Logout during no
Disconnect internet, tap logout
8 internet
TC_LOGOUT_00 Logout button UI
Tap logout button
9 feedback
Ensure logout option is visible and
TC_LOGOUT_01
Logout accessibility tappable on all user-accessible screens
0
(e.g., dashboard/profile/settings)

Create New
Category
Test Case ID Test Scenario Test Steps
Create service with Enter valid name, upload valid JPG/PNG
TC_SERVICE_001 valid name, image, image (under 5MB), enter optional
and description description
Missing required Leave the “Category Name” field blank
TC_SERVICE_002
name field and submit
Missing required Enter name and description, but do not
TC_SERVICE_003
image field upload an image
Image exceeds file
TC_SERVICE_004 Upload an image file larger than 5MB
size limit
Upload a file with invalid format (e.g.,
TC_SERVICE_005 Invalid image format
PDF, GIF)
Description field is Enter only name and valid image, leave
TC_SERVICE_006
optional description blank

TC_SERVICE_007 Submit all fields blank Leave all fields blank and submit

Cancel service Tap "Cancel" or "Back" during service


TC_SERVICE_008
creation creation
Check that the "Create" button remains
UI - Button enabled
TC_SERVICE_009 disabled until required fields (name and
state
image) are filled
Duplicate service Try to create service with an existing
TC_SERVICE_010
name (if restricted) service name

TC_SERVICE_011 Image preview display Upload an image


Input trimming and
TC_SERVICE_012 Enter whitespace only in required fields
validation
Success confirmation
TC_SERVICE_013 Create a valid service
message
Catagory Listing
Test Case ID Title Test Steps
TC_SERVICE_LIST Verify services list 1) Login as Admin
_001 loads 2) Navigate to “Services” section
TC_SERVICE_LIST Verify columns in
Locate the service table on the page
_002 service listing
TC_SERVICE_LIST
Verify status display View “Status” column for each row
_003
TC_SERVICE_LIST Verify Edit button
Click “Edit” on a service row
_004 functionality
TC_SERVICE_LIST Verify Deactivate Click “Deactivate” for an active service-
_005 button Confirm the prompt
TC_SERVICE_LIST Deactivate already 1) Find a service marked “Inactive” 2)
_006 inactive service Try to deactivate it again
TC_SERVICE_LIST Search/filter Type part of the category name in the
_007 functionality search field
TC_SERVICE_LIST Pagination check (if
Scroll or click next page of service list
_008 applicable)
TC_SERVICE_LIST Refresh after 1)Edit or deactivate a service 2)Return to
_009 edit/deactivation listing page

Active/ Deactive
Category

Test Case ID Title Test Steps


1) Login as Admin
2) Go to Services listing
TC_CAT_STATUS Deactivate an active
3)Click “Deactivate” on an active
_001 category
category
4) Confirm in dialog

After deactivation, check Customer and


TC_CAT_STATUS Confirm deactivation
Mandoob booking/service selection
_002 hides category
interfaces
1) deactivate a category with existing
bookings
TC_CAT_STATUS Ensure existing
2) Login as a Mandoob/Customer
_003 bookings not affected
3) Open previous
bookings
1) Click “Deactivate” on an active
TC_CAT_STATUS Cancel deactivation category
_004 confirmation 2) Click “Cancel” in the confirmation
dialog

1) Go to Services listing 2) Locate an


TC_CAT_STATUS Activate an inactive
inactive category 3) Click “Activate”-
_005 category
Confirm action
TC_CAT_STATUS Activated category After activation, Go to Customer booking
_006 becomes available and Mandoob service selection screens

Multiple
TC_CAT_STATUS Toggle the same category multiple times
activations/deactivati
_007 between Active and Inactive
ons
Invalid action on
TC_CAT_STATUS Try to deactivate an already inactive
already inactive
_008 category
category
TC_CAT_STATUS System handles no Disconnect network / simulate API
_009 internet/server error failure while deactivating
1) Measure time between click and
TC_CAT_STATUS UI response time after success message
_010 action 2) Observe if button disables during
action
Category Edit
Test Case ID Test Scenario Test Steps
1. Login as Admin.
TC_CAT_EDIT_00 2. Navigate to Category Listing Page.
Open Edit Form
1 3. Click on "Edit" button/icon of any
listed category.

1. Enter a valid unique name (e.g., "Home


TC_CAT_EDIT_00 Edit Category with Maintenance"). 2.
2 Valid Inputs Optionally update description.
3. Click "Submit".
TC_CAT_EDIT_00 Submit Empty Name 1. Clear the category name field.
3 Field 2. Click "Submit".
1. Enter a name with less than 3
TC_CAT_EDIT_00 Enter Less than 3
characters (e.g., "Hi").
4 Characters in Name
2. Click "Submit".
1. Enter a name with invalid characters
TC_CAT_EDIT_00 Enter Invalid
(e.g., "@Clean$123").
5 Characters in Name
2. Click "Submit".
TC_CAT_EDIT_00 1. Enter a name that already exists. 2.
Use Duplicate Name
6 Click "Submit".
1. Keep category name unchanged.
TC_CAT_EDIT_00
Edit Only Description 2. Update description.
7
3. Click "Submit".
1. Open edit form.
TC_CAT_EDIT_00
No Changes Made 2. Make no changes.
8
3. Click "Submit".
1. Update the category name.
TC_CAT_EDIT_00 Verify System-wide
2. Check name in service
9 Update
creation, filters, etc.
1. Edit category as Admin.
TC_CAT_EDIT_01
Verify Audit Logging 2. Login as Super Admin.
0
3. Access audit logs.
TC_CAT_EDIT_01 Simulate Server/API 1. Trigger server/API error.
1 Error 2. Click "Submit".

Mandoobs Listing
Test Case ID Test Scenario Test Steps

1. Login as Admin
TC_Mandoob_01 View Mandoob list
2. Navigate to the Mandoob listing page

Verify details per 1. Navigate to listing page


TC_Mandoob_02
Mandoob 2. Check each row for proper details

1. Open listing page


Check individual and
TC_Mandoob_03 2. Verify Type column contains either
corporate types
"Individual" or "Corporate"
Check default sorting
TC_Mandoob_04 Navigate to listing page
order
1. Populate database with more than
Verify pagination
TC_Mandoob_05 page-limit entries (e.g., 50+)
appears for long lists
2. Open listing page
Check "View" button
TC_Mandoob_06 Click “View” on any Mandoob
functionality
Check "Edit" button
TC_Mandoob_07 Click “Edit” next to a Mandoob
functionality
1. Click “Deactivate” button next to an
Deactivate Mandoob
TC_Mandoob_08 active Mandoob
from list
2. Confirm deactivation in dialog box
1. Click “Activate” button next to an
Activate Mandoob
TC_Mandoob_09 inactive Mandoob
from list
2. Confirm activation
Verify status column 1. Activate or deactivate a Mandoob
TC_Mandoob_10
update after action 2. Observe the Status column
Verify data
Refresh listing page after making status
TC_Mandoob_11 consistency after page
changes
refresh

Activate & deactive the mandoobs


1. Login as Admin
2. Go to Mandoob listing page
TC_MandoobAct Deactivate an active
3. Click “Deactivate” on an active
_01 Mandoob
Mandoob
4. Confirm in modal popup
1. Click “Deactivate” on an active
TC_MandoobAct Mandoob
Cancel deactivation
_02 2. Click “Cancel” on confirmation
dialog
TC_MandoobAct Verify modal text
Click “Deactivate” on a Mandoob
_03 before deactivation
1. Deactivate a Mandoob
TC_MandoobAct Verify login access
2. Try logging in with that Mandoob’s
_04 after deactivation
credentials

TC_MandoobAct Reactivate an inactive Click “Activate” next to an inactive


_05 Mandoob Mandoob

TC_MandoobAct Verify login after 1. Reactivate a Mandoob


_06 reactivation 2. Try to log in with their credentials

TC_MandoobAct Verify status column


Perform activate/deactivate action
_07 updates after change

TC_MandoobAct Verify action logged 1. Deactivate or activate a Mandoob


_08 with admin ID & time 2. Check audit logs (if available)

TC_MandoobAct Toggle button reflects View the toggle/button state for multiple
_09 correct state Mandoobs
\Filter Mandoobs by corporate & Individual
Test Case ID Test Scenario Test Steps

TC_MandoobFilt 1. Login as Admin


View filter options
_01 2. Navigate to the Mandoob listing page

TC_MandoobFilt Apply “Corporate”


Click on the “Corporate” filter
_02 filter
TC_MandoobFilt Apply “Individual”
Click on the “Individual” filter
_03 filter
TC_MandoobFilt Clear filter or select 1. Apply any filter
_04 “All” 2. Select “All” or clear filter
TC_MandoobFilt Verify filter persists 1. Apply filter (e.g., “Corporate”)
_05 on pagination 2. Navigate to next page

TC_MandoobFilt No results for Apply filter when no Mandoobs exist for


_06 selected filter that type (e.g., no “Individual” in system)

1. Apply a filter
TC_MandoobFilt Verify sorting works
2. Change sort order (e.g., by date or
_07 with filter applied
name)
1. Apply filter (e.g., “Corporate”)
TC_MandoobFilt Combine filter with
2. Use search bar to find a name or
_08 search
email
Search Mandoobs

TC_MandoobSea Verify search bar 1. Login as Admin


rch_01 visibility 2. Navigate to the Mandoob listing page

1. Enter full Mandoob name in search bar


TC_MandoobSea
Search by full name
rch_02
2. Press Enter or wait if real-time
TC_MandoobSea Search by partial 1. Enter partial name (e.g., "Ahm")
rch_03 name 2. Press Enter or wait
TC_MandoobSea 1. Enter full or partial email address
Search by email
rch_04 2. Press Enter
TC_MandoobSea Search by phone 1. Enter full or partial phone number
rch_05 number 2. Press Enter
1. Enter a name/email/phone that
TC_MandoobSea
No matching record doesn't exist
rch_06
2. Press Enter
TC_MandoobSea 1. Enter search text and view results
Search clears results
rch_07 2. Clear the search input
TC_MandoobSea Combine search with 1. Apply type filter (e.g., Corporate)
rch_08 filter 2. Search by partial name/email/phone
TC_MandoobSea Search input 1. Enter invalid characters (e.g., !@#$%)
rch_09 validation 2. Press Enter

1. Enter name/email/phone in different


TC_MandoobSea Case-insensitive
cases (e.g., lowercase/uppercase)
rch_10 search
2. Search

Approved Services Listing

TC_ApprovedSer 1. Login as Admin


Verify table visibility
vices_01 2. Navigate to Approved Services section

TC_ApprovedSer
Verify listed fields View any row in the services table
vices_02

1. Navigate to Approved Services


TC_ApprovedSer Filter services by
2. Ensure only services with
vices_03 status
“Approved” status are listed
TC_ApprovedSer Verify pagination Scroll or navigate to next pages if there
vices_04 functionality are more services
TC_ApprovedSer Verify search by 1. Enter service name in search bar
vices_05 Service Name 2. Press Enter
TC_ApprovedSer Verify search by 1. Enter Mandoob name in search bar 2.
vices_06 Mandoob Name Press Enter
TC_ApprovedSer
View service details Click “View” button on any row
vices_07
1. Click “Deactivate” button on an
TC_ApprovedSer
Deactivate a service approved service
vices_08
2. Confirm action in modal
Validate
TC_ApprovedSer Look at the Created/Approved date
Created/Approved
vices_09 column
date format
TC_ApprovedSer Check if location field is populated for
Validate location data
vices_10 each service
1. Enter a random value not matching
TC_ApprovedSer
Search with no result any service
vices_11
2. Press Enter
TC_ApprovedSer Column sorting (if Click on sortable columns (e.g., Date,
vices_12 available) Name)
View Service Details
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_ServiceDetail View service detail 2. Navigate to pending/approved services
_01 page listing 3.
Click “View” on a service

TC_ServiceDetail
Verify displayed fields On detail view, review all sections
_02

TC_ServiceDetail Validate Mandoob Review the Mandoob section on detail


_03 info view
TC_ServiceDetail Validate service
Ensure image is displayed on detail page
_04 image
1. Click on “Approve” button (if service is
TC_ServiceDetail Approve a pending
pending)
_05 service
2. Confirm action
TC_ServiceDetail Reject a pending 1. Click on “Reject” button (if service is
_06 service pending) 2. Confirm action
Verify absence of
TC_ServiceDetail View a service that is already approved
action buttons
_07 or rejected
(approved/rejected)
TC_ServiceDetail Validate location
Review location field on the page
_08 display

TC_ServiceDetail Validate price and Look at Price and Estimated Delivery


_09 delivery time format Time fields

TC_ServiceDetail Verify submission


Check submission date value
_10 date format
Attempt to re-
TC_ServiceDetail 1. Try to view rejected service
approve rejected
_11 2. Check button visibility
service

TC_ServiceDetail Ensure audit logging


Approve or reject a service
_12 on approval/rejection

Pending Service Listing


TC_ServiceList_0 Display pending 1. Login as Admin
1 approval services 2. Go to "Pending Services" section
TC_ServiceList_0
Verify table columns View the listing table
2
TC_ServiceList_0 Click on “View” button in the Actions
View service details
3 column
TC_ServiceList_0 Approve a pending 1. Click “Approve” for a pending service
4 service 2. Confirm in modal (if present)
TC_ServiceList_0 Reject a pending 1. Click “Reject” for a pending service 2.
5 service Confirm in modal
TC_ServiceList_0 Validate filtering by Apply date range filter (e.g., from 01-Jul-
6 date range 2025 to 10-Jul-2025)
TC_ServiceList_0 Validate filtering by Apply filter by service status (e.g.,
7 service type/status “Update Pending”)
TC_ServiceList_0 Check sorting by Observe default sort or click column
8 submission date header
TC_ServiceList_0 Pagination
Scroll down or go to next page in the list
9 functionality
View list when no services are in
TC_ServiceList_1 No services in
“Pending Approval” or “Update Pending”
0 pending state
status
TC_ServiceList_1 Ensure action buttons For each pending service, confirm
1 are visible buttons available
TC_ServiceList_1 Confirm UI
Open list on desktop and mobile view
2 responsiveness
Approve or Reject Service
Test Case ID Test Scenario Test Steps
1. Login as Admin 2.
TC_ServiceAppro View service detail
Go to pending service list
val_01 page
3. Click on "View" for any service
TC_ServiceAppro Approve a new 1. On detail page, click "Approve" button
val_02 service 2. Confirm if modal appears

1. On detail page, click "Reject" button 2.


Modal appears with text box for reason
TC_ServiceAppro
Reject a new service 3. Enter
val_03
valid reason 4.
Click “Submit”

TC_ServiceAppro Reject modal requires 1. Click "Reject"


val_04 reason 2. Try submitting empty reason
1. Reject a service with reason
TC_ServiceAppro Notification on
2. Login as Mandoob linked to that
val_05 rejection
service
TC_ServiceAppro
Action audit logging Approve or reject any service
val_06
1. Approve a service
TC_ServiceAppro Service becomes live
2. Go to live service list or customer
val_07 after approval
view

1. View a service with status “Update


TC_ServiceAppro Rejecting an updated Pending”
val_08 service 2. Click “Reject”
3. Provide reason and submit

1. View rejected service


TC_ServiceAppro Re-approving an
2. Update its info as Mandoob
val_09 already rejected item
3. Admin re-approves
TC_ServiceAppro UI behavior on
Perform approve or reject action
val_10 actions
Search Service
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_ServiceSearc Search by full service 2. Go to service list
h_01 name 3. Enter full service name in search
bar 4. Press Enter
TC_ServiceSearc Search by partial 1. Enter partial service name
h_02 service name 2. Press Enter
TC_ServiceSearc Search by full 1. Enter a category name
h_03 category 2. Press Enter
TC_ServiceSearc Search by partial 1. Enter partial category name
h_04 category name 2. Press Enter
TC_ServiceSearc 1. Enter random/non-existent term
No matching results
h_05 2. Press Enter
TC_ServiceSearc Search from Click on “Approved” tab 2. Perform
h_06 Approved tab search
TC_ServiceSearc Search from Pending 1. Click on “Pending” tab
h_07 tab 2. Perform search
TC_ServiceSearc 1. Enter search term
Clear search input
h_08 2. Click “X” or clear button
TC_ServiceSearc Case-insensitive Enter service name or category in
h_09 search lowercase/uppercase
Search handles
TC_ServiceSearc
special characters Enter special characters like %, $, @
h_10
safely
Filter Service By Mandoobs and Location
1. Login as Admin
TC_MandoobFilt Filter services by 2. Navigate to Services list
er_01 Mandoob Name 3. In filter, enter/select
Mandoob Name 4. Apply filter
TC_MandoobFilt Filter services by 1. Enter valid Mandoob ID in filter field 2.
er_02 Mandoob ID Apply filter
Filter services by 1. Select "Corporate" from Mandoob
TC_MandoobFilt
Mandoob Type: Type dropdown
er_03
Corporate 2. Apply filter
Filter services by 1. Select "Individual" from Mandoob
TC_MandoobFilt
Mandoob Type: Type dropdown
er_04
Individual 2. Apply filter
1. Select a specific Location from
TC_MandoobFilt Filter services by
dropdown
er_05 Location
2. Apply filter

1. Select Mandoob Name/ID


TC_MandoobFilt Apply all filters 2. Select Type (e.g., Corporate)
er_06 together 3. Select Location
4. Apply filter

1. Enter invalid or unmatched filter


TC_MandoobFilt
No matching services combination
er_07
2. Apply
1. Apply any filter
TC_MandoobFilt Check filter across all
2. Switch between Approved /
er_08 status tabs
Pending / Rejected tabs
TC_MandoobFilt 1. Apply any combination of filters
Reset filters
er_09 2. Click “Reset Filter” button
Validate 1. Type a few letters in Mandoob
TC_MandoobFilt
autosuggestions in Name/ID field
er_10
Mandoob input 2. Observe dropdown suggestions

Booked service listing


1. Login as Admin
TC_BookingList_ View booked services
2. Navigate to “Booked Services”
01 list
section
TC_BookingList_
Check default sorting Open booked services list
02
TC_BookingList_ Scroll down or go to next page if many
Verify pagination
03 bookings exist
TC_BookingList_ Filter by Booking 1. Open status filter
04 Status = Pending 2. Select “Pending”
TC_BookingList_ Filter by Booking
Select “Completed” from status filter
05 Status = Completed
TC_BookingList_ Filter by Booking
Select “Cancelled” from status filter
06 Status = Cancelled
TC_BookingList_ Filter by Payment
Select “Paid” in payment status filter
07 Status = Paid
TC_BookingList_ Filter by Payment
Select “Unpaid” in payment status filter
08 Status = Unpaid
TC_BookingList_ Select a start and end date in date range
Filter by Date Range
09 filter
TC_BookingList_ Filter by Mandoob Type or select a Mandoob’s name in
10 Name filter
Select booking status, payment status,
TC_BookingList_
Apply multiple filters date range, and Mandoob
11
2. Apply
TC_BookingList_ 1. Apply any filters
Reset filters
12 2. Click “Reset Filters”
TC_BookingList_
No matching bookings Enter filter combination with no matches
13
View details of booked service
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_BookingDetai Access booking detail 2. Go to “Booked Services” list
l_01 view 3. Click on "View" button for a
booking
TC_BookingDetai View booking
Open booking detail view
l_02 metadata
TC_BookingDetai View customer
Open booking detail view
l_03 information
TC_BookingDetai View Mandoob
Open booking detail view
l_04 information
TC_BookingDetai
View service details Open booking detail view
l_05
TC_BookingDetai
View booking status Open booking detail view
l_06
TC_BookingDetai
View payment status Open booking detail view
l_07
TC_BookingDetai 1. Open booking detail view
View invoice 2. Click on "View Invoice"
l_08
button/link
pen a booking with missing
TC_BookingDetai Handle missing or
customer/Mandoob data (simulate via
l_09 invalid data
mock or backend)
TC_BookingDetai Attempt to view non- Enter invalid booking ID in URL or try to
l_10 existing booking access deleted booking detail
Filter By ACTIVE, Completed, Cancelled
1. Login as Admin
TC_BookingFilter Filter by “Active” 2. Navigate to Bookings page
_01 status 3. Select "Active" from status filter
dropdown
TC_BookingFilter Filter by “Completed” 1. Navigate to Bookings page
_02 status 2. Select "Completed" from filter
TC_BookingFilter Filter by “Cancelled” 1. Navigate to Bookings page
_03 status 2. Select "Cancelled" from filter
TC_BookingFilter Filter with no Apply a filter (e.g., "Completed") when
_04 matching data there are no such bookings
1. Select "Completed" filter
TC_BookingFilter Filter persists on 2. Navigate away (e.g., to
_05 navigation Dashboard) 3. Return to Booking
list
1. Apply any filter
TC_BookingFilter
Reset filter 2. Click on “Reset” or remove the
_06
filter
1. Apply “Cancelled” filter
TC_BookingFilter Combine with other
2. Use Date/Mandoob filters (if
_07 filters (if enabled)
available)
TC_BookingFilter Filter updates results
Apply "Active" status filter
_08 without reload
1. Apply “Completed” filter where many
TC_BookingFilter Filter on large dataset
results exist
_09 (pagination)
2. Scroll or click to next page
TC_BookingFilter Invalid filter Manually enter an invalid filter value in
_10 parameter in URL URL (e.g., status=archived)
View Invoice
Test Case ID Test Scenario Test Steps
1. Login as Admin
View invoice from 2. Go to Bookings list
TC_Invoice_01
booking detail page 3. Click on a booking entry
4. Click on “View Invoice”
Validate invoice
TC_Invoice_02 Open any invoice
content

Verify payment
TC_Invoice_03 Open invoice for a paid booking
breakdown
Verify unpaid booking
TC_Invoice_04 Open invoice for an unpaid booking
invoice
Download invoice as 1. Open invoice
TC_Invoice_05
PDF 2. Click on “Download PDF”
1. Download PDF invoice
TC_Invoice_06 PDF content match
2. Open the file
Download failure 1. Simulate network error
TC_Invoice_07
handling 2. Click “Download PDF”
1. Login via mobile
Download on mobile
TC_Invoice_08 2. Go to booking detail
view
3. Download PDF
Invoice for cancelled
TC_Invoice_09 View invoice for a cancelled booking
booking
1. Login as a non-admin
Access control – non-
TC_Invoice_10 2. Attempt to view/download
admin user
admin invoice
Mark as Paid
Test Case ID Test Scenario Test Steps
1. Login as Admin
Display "Mark as 2. Go to Bookings list
TC_MarkPaid_01 Paid" only for 3. Open a Completed
completed bookings booking 4. Verify "Mark
as Paid" button is visible

"Mark as Paid" hidden


Open a booking with status = Pending or
TC_MarkPaid_02 for non-completed
Cancelled
bookings
Click on “Mark as Paid” button on a
TC_MarkPaid_03 Mark booking as paid
completed booking
Log payment in 1. After marking as paid, go to activity
TC_MarkPaid_04
system activity logs
Send notification to
TC_MarkPaid_05 After marking a booking as paid
Mandoob
Send notification to
TC_MarkPaid_06 After marking a booking as paid
Customer
Validate payment 1. Mark booking as paid
TC_MarkPaid_07
date recorded 2. Reopen the booking

Prevent re-marking of Try to click "Mark as Paid" on a booking


TC_MarkPaid_08
already paid booking that is already marked Paid

Refresh and persist 1. Mark booking as paid


TC_MarkPaid_09
status 2. Refresh the page
Unauthorized access Try to access “Mark as Paid” as non-
TC_MarkPaid_10
attempt admin or without login
Listing
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_CancelList_0 View cancellation
2. Navigate to Cancellation Requests
1 request list
page/list

TC_CancelList_0 Check displayed


Open cancellation request list
2 columns

TC_CancelList_0 Sort list by Request


Open list and observe the order
3 Date (latest first)
Check if Booking ID, Customer and
TC_CancelList_0 Validate request data
Mandoob names match the actual
4 integrity
booking
TC_CancelList_0 If requests > per page limit, navigate to
Pagination enabled
5 next page
TC_CancelList_0 Open list when there are no cancellation
Empty state handling
6 requests
TC_CancelList_0 Role-based access
Try accessing the list as a non-admin user
7 control
TC_CancelList_0
Responsive layout Open the list on desktop and mobile
8
View Cancellation Request
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_CancelDecisi View eligible
2. Navigate to Cancellation Requests
on_01 cancellation requests
requiring action
TC_CancelDecisi Display of required
Open a cancellation request entry
on_02 information

TC_CancelDecisi Approve a
Click "Approve" on a request
on_03 cancellation request

TC_CancelDecisi Reject a cancellation


Click "Reject" on a request
on_04 request
TC_CancelDecisi
View chat history Click “View Chat History” on a request
on_05
TC_CancelDecisi Restrict display for Try to access requests for unpaid
on_06 unpaid bookings bookings
1. Cancel booking from platform side
TC_CancelDecisi Cancelled by platform
(admin-initiated)
on_07 – not listed
2. Check if it appears here
TC_CancelDecisi Role-based access Attempt to access this page as a non-
on_08 control admin
TC_CancelDecisi Action buttons Ensure buttons “Approve” and “Reject”
on_09 behave correctly work as expected
TC_CancelDecisi No requests to decide Open page when no eligible requests
on_10 – empty state exist
Approve or Reject
Test Case ID Test Scenario Test Steps

1. Login as Admin
2. Go to Cancellation Requests
TC_CancelReq_0 Approve cancellation 3. Click on a request
1 request with remarks 4. Click "Approve"
5. Add remarks (optional)
6. Confirm

1. Go to Cancellation Request list


2. Open a request
TC_CancelReq_0 Reject cancellation
3. Click "Reject"
3 request with remarks
4. Enter remarks
(optional) 5. Confirm

TC_CancelReq_0 Confirmation prompt


Click "Approve"
4 appears on approval

TC_CancelReq_0 Confirmation prompt


Click "Reject"
5 appears on rejection

TC_CancelReq_0 Notifications sent


Approve a cancellation request
6 after approval
TC_CancelReq_0 Notifications sent
Reject a cancellation request
7 after rejection
Request removed
TC_CancelReq_0
from cancellation list 1. Approve or reject any request
8
post-action
Request moved to
TC_CancelReq_0
Refund Processing 1. Approve a cancellation
9
after approval

1. Approve → booking status becomes


Booking status
TC_CancelReq_1 "Cancelled"
updates in main
0 2. Reject → booking status becomes
listing
"Active / In Progress"
TC_CancelReq_1 Logging of Admin
Approve or reject a request
1 actions
Remarks saved
TC_CancelReq_1 Enter a remark during approval or
correctly in system
2 rejection
log

Prevent re-processing
TC_CancelReq_1 Try to approve or reject a request that
of already handled
3 has already been processed
requests

Search Through ID, Customer name


1. Login as Admin
2. Navigate to Cancellation Requests
TC_CancelSearch Search by full Booking page
_01 ID 3. Enter full valid Booking ID in search
bar
4. Press Enter / Click Search

TC_CancelSearch Search by partial


Enter partial Booking ID
_02 Booking ID
TC_CancelSearch Search by full
Enter full Customer Name
_03 Customer Name
TC_CancelSearch Search by partial
Enter part of Customer Name
_04 Customer Name
TC_CancelSearch Case-insensitive Enter Customer Name/Booking ID in
_05 search different case format (e.g. lowercase)
TC_CancelSearch
Search with no match Enter invalid Booking ID or Name
_06
TC_CancelSearch Clear search and view
Clear search bar or click "Reset Search"
_07 all
TC_CancelSearch Search persists across 1. Search for a customer
_08 navigation 2. Click into a request and return
Leading/trailing
TC_CancelSearch Enter search term with spaces before or
whitespace is
_09 after
trimmed
Search during
TC_CancelSearch 1. Navigate to another page of results 2.
pagination or filter
_10 Perform search
view
Refund Listing
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_RefundList_0 Display all refund
2. Navigate to "Refund Requests"
1 requests
section
TC_RefundList_0 Verify status = Check the list for requests with status
2 Pending shown “Pending”
TC_RefundList_0 Verify status = Paid
Apply "Paid" status filter
3 shown
TC_RefundList_0 Filter by Status = 1. Click Status filter
4 Pending 2. Select “Pending”
TC_RefundList_0 1. Click Status filter
Filter by Status = Paid
5 2. Select “Paid”
TC_RefundList_0
Filter by Date Range Select a start and end date
6
Sort list by most
TC_RefundList_0 Click on column “Date of Approval” to
recent Date of
7 sort
Approval
TC_RefundList_0 Search for specific
Enter valid Booking ID in search bar
8 Booking ID
TC_RefundList_0 View correct Refund
Scan the list for refund amounts
9 Amount in list
TC_RefundList_1 Enter non-existent Booking ID or
No matching results
0 Customer Name
TC_RefundList_1 Reset filters to view 1. Apply filters
1 full list 2. Click "Reset"
TC_RefundList_1
Pagination of results Scroll and change pages
2
TC_RefundList_1 Case-insensitive Search using upper/lower case customer
3 search name
View refund details
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_RefundDetail Open refund request
2. Go to Refund Request List
_01 detail view
3. Click on a specific refund request
TC_RefundDetail
View Booking ID On refund detail view, locate Booking ID
_02
TC_RefundDetail Locate Customer details (Name, Phone,
View Customer Info
_03 Email)
TC_RefundDetail Locate Mandoob details (Name, Phone,
View Mandoob Info
_04 Email, Type)
TC_RefundDetail View Original Booking
Locate original amount field
_05 Amount
TC_RefundDetail View Approved
Locate refund amount field
_06 Refund Amount

TC_RefundDetail View Date of


Locate approval date field
_07 Cancellation Approval

View Admin Remarks


TC_RefundDetail
from Cancellation Locate "Admin Remarks" section
_08
Request
TC_RefundDetail Access Chat History Locate and click on “View Chat History”
_09 Link link
TC_RefundDetail View Refund Status Locate status timeline (e.g., Pending →
_10 History Paid)
TC_RefundDetail Read-only access to 1. Click on chat link
_11 chat 2. Try typing or sending a message

TC_RefundDetail Handle invalid or Try to open a non-existing or deleted


_12 missing refund record refund request

Access control – Non-


TC_RefundDetail 1. Login as non-admin
admin access
_13 2. Try accessing refund detail via URL
restriction
Mark as Paid
Display "Mark as 1. Login as Admin
TC_RefundPaid_ 2. Go to Refund Request List
Paid" button for
01 3. Open a refund with status
pending refunds
“Pending”
Hide "Mark as Paid"
TC_RefundPaid_
button for already Open a refund request with status = Paid
02
paid refunds
TC_RefundPaid_ Show confirmation
Click "Mark as Paid" on a pending refund
03 prompt
1. Click "Mark as Paid"
TC_RefundPaid_ Cancel from
2. Click "Cancel" in the confirmation
04 confirmation prompt
prompt
TC_RefundPaid_ Confirm marking as
Click "Mark as Paid" 2. Click "Confirm"
05 paid
TC_RefundPaid_ System logs admin ID
After marking as paid, check system logs
06 and timestamp
TC_RefundPaid_ Notification sent to
After refund marked as paid
07 Customer

TC_RefundPaid_ Notification sent to


After refund marked as paid
08 Mandoob (if relevant)

TC_RefundPaid_ Ensure status is


Go back to Refund Request List
09 updated in list view
TC_RefundPaid_ Prevent duplicate Try clicking "Mark as Paid" again on the
10 marking same refund
Handle server failure
TC_RefundPaid_ Simulate backend/server failure during
or error during
11 "Mark as Paid" action
marking
TC_RefundPaid_ Unauthorized access Try to access the "Mark as Paid"
12 prevention functionality as a non-admin user
Admins Listing
1. Login as Super Admin
TC_AdminList_0 Display list of admin
2. Navigate to "Admin Management"
1 users
or equivalent page
TC_AdminList_0 Display correct
Check the list view
2 columns

TC_AdminList_0 Display correct role Cross-check displayed role/status with


3 and status per admin backend or known values

TC_AdminList_0 Edit button presence


Click the "Edit" button for an admin entry
4 and function

TC_AdminList_0 Deactivate button


Click the "Deactivate" button
5 presence and function

TC_AdminList_0 Visual status


View entries with different statuses
6 indication
TC_AdminList_0 Sort list by Created
Click on "Created Date" column header
7 Date
TC_AdminList_0 List pagination (if
If admin count > list limit per page
8 applicable)
TC_AdminList_0 Only Super Admin can Try to open admin list page as a normal
9 access Admin
Search admin by
TC_AdminList_1 Enter partial or full name/email in search
name/email (if search
0 bar
is present)
TC_AdminList_1 View page when no admin users are
Handle empty list
1 present
TC_AdminList_1 Handle deactivated View a previously active user that is now
2 admin visibility deactivated
Search Admins
Test Case ID Test Scenario Test Steps
1. Login as Super Admin
TC_AdminSearch
Search by full name 2. Enter full admin name in the
_01
search bar
TC_AdminSearch Search by partial
Enter partial name in the search bar
_02 name
TC_AdminSearch
Search by email (full) Enter complete email address in search
_03
TC_AdminSearch Search by partial Enter part of an email address (e.g.,
_04 email domain or first name)
TC_AdminSearch
No match found Enter random or invalid name/email
_05
TC_AdminSearch Case insensitivity in Type admin name/email using
_06 search upper/lower/mixed case
TC_AdminSearch 1. Perform a search
Clear search input
_07 2. Clear the search input

TC_AdminSearch Search combined with Search for a user who appears on a


_08 pagination (if any) second or later page

Search while a filter


TC_AdminSearch Apply a filter (e.g., Active admins)
(status/role) is
_09 2. Search by name/email
applied
TC_AdminSearch Search input
View the search field
_10 placeholder text
Active/Deactive Admins
Test Case ID Test Scenario Test Steps
1. Login as Super Admin
TC_AdminToggle Deactivate an active 2. Locate an admin with “Active”
_01 admin account status 3. Click on "Deactivate" or toggle
switch 4. Confirm in the prompt

1. Locate an admin with “Inactive” status


TC_AdminToggle Activate an inactive
2. Click on "Activate" or toggle switch
_02 admin account
3. Confirm in the prompt
1. Attempt to activate/deactivate an
TC_AdminToggle Cancel confirmation admin
_03 prompt 2. Click "Cancel" on the confirmation
prompt

1. Deactivate an admin
TC_AdminToggle Verify login restriction
2. Attempt login using that admin
_04 after deactivation
account
1. Reactivate an inactive admin
TC_AdminToggle Verify login allowed
2. Attempt login using that admin
_05 after activation
account

TC_AdminToggle Status reflects 1. Toggle status for an admin


_06 correctly in admin list 2. Observe the status column

TC_AdminToggle Audit trail for status Change admin status


_07 changes (activate/deactivate)
TC_AdminToggle UI reflects toggle
Change status using toggle button
_08 state change
TC_AdminToggle Attempt toggle with
Simulate a network error during toggle
_09 network failure
1. Login as a non-super admin (if
TC_AdminToggle Role-based access applicable)
_10 check 2. Try to view or change admin
statuses
Create New Admin
Test Case ID Test Scenario Test Steps
1. Login as Super Admin
2. Go to “Create Admin” screen
TC_CreateAdmin Create admin with all
3. Enter valid name, unique
_01 valid inputs
email, select role, assign privileges, set
password

TC_CreateAdmin Email uniqueness Try creating admin with an already


_02 validation registered email
TC_CreateAdmin Validate required
Leave one or more required fields empty
_03 fields
TC_CreateAdmin Role dropdown
Open Role dropdown
_04 options
TC_CreateAdmin
Assign privileges Select privileges for new admin
_05
TC_CreateAdmin Auto-generate
Select “Auto-generate password” option
_06 temporary password
TC_CreateAdmin
Set manual password Enter a manual password
_07
TC_CreateAdmin Admin receives
Create new admin
_08 welcome email
TC_CreateAdmin Status set to “Active”
Create new admin
_09 by default
TC_CreateAdmin Force password reset
Login using temporary password
_10 on first login
Password strength
TC_CreateAdmin
validation (if Enter a weak password manually
_11
applicable)
TC_CreateAdmin 1. Fill form partially
Cancel admin creation
_12 2. Click “Cancel”
TC_CreateAdmin Verify admin appears 1. Create new admin
_13 in admin list 2. Go to Admin list

TC_CreateAdmin Attempt creation with Enter incorrect email format (e.g.,


_14 invalid email format admin#email)

TC_CreateAdmin Network failure Simulate network issue during form


_15 during creation submission
Customer Listing
1. Login as Admin
TC_CustomerList
View customer list 2. Navigate to “Customer
_01
Management” section
TC_CustomerList 1. Navigate to customer list
Pagination control
_02 2. Scroll or click next page
TC_CustomerList Click “View Details” button for any
View customer details
_03 customer

TC_CustomerList Deactivate an active 1. Find a customer with status = Active 2.


_04 customer Click “Deactivate”

TC_CustomerList Activate an inactive 1. Find a customer with status = Inactive


_05 customer 2. Click “Activate”
TC_CustomerList Validate column
Observe each customer entry
_06 content
TC_CustomerList If no customers exist (test on
Empty state handling
_07 fresh/staging environment)
TC_CustomerList Error handling on
Simulate API/server issue
_08 server/API failure
TC_CustomerList Ensure list refreshes 1. Deactivate a customer
_09 after status update 2. Observe customer list
TC_CustomerList Search/filter support Enter name/email in search bar (if
_10 (if applicable) implemented)
TC_CustomerList Sort by Registration Click on Registration Date column (if
_11 Date sortable)
Verify data
TC_CustomerList 1. Note customer count/page
consistency across
_12 2. Navigate multiple pages
pages
Search Customer By Name, Email and Phone
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_CustomerSea Search using full 2. Navigate to Customer list
rch_01 name 3. Enter full customer name in
search bar
TC_CustomerSea Search using partial Enter part of a known customer's name
rch_02 name in the search field
TC_CustomerSea Enter full email address of a customer in
Search using full email
rch_03 the search bar
TC_CustomerSea Search using partial Enter domain or username part of email
rch_04 email (e.g., "@gmail.com")
TC_CustomerSea Search using full Enter a customer’s complete phone
rch_05 phone number number
TC_CustomerSea Search using partial
Enter last 4 digits or area code
rch_06 phone number
TC_CustomerSea Enter a random string with no matching
Invalid search query
rch_07 name/email/phone
TC_CustomerSea Case insensitivity in Type name/email in different cases (e.g.,
rch_08 search "JOHN", "john")
Combined filter
TC_CustomerSea Enter name/email/phone combinations
scenarios (if
rch_09 or partials
applicable)
TC_CustomerSea Clear search
After searching, clear the input field
rch_10 functionality
TC_CustomerSea Response time under
Perform any valid search
rch_11 2 seconds
TC_CustomerSea Special character
Enter special characters (e.g., "@", "#")
rch_12 handling
View Details Of The Customer
1. Login as Admin
TC_CustProfile_0 View full customer 2. Navigate to Customer List
1 information 3. Click on "View Details" of a
customer
TC_CustProfile_0 Check booking
On the Customer Details page
2 statistics visibility

TC_CustProfile_0 Booking stats Cross-check the numbers shown in


3 calculation validation booking stats with actual data

TC_CustProfile_0 Activate an inactive On profile, click "Activate" button for a


4 customer customer with status "Inactive"
TC_CustProfile_0 Deactivate an active On profile, click “Deactivate” button for a
5 customer customer with status “Active”
Confirmation prompt
TC_CustProfile_0 before
Try to activate or deactivate a customer
6 activation/deactivatio
n
TC_CustProfile_0 Last Login date
Navigate to Customer Details page
7 visibility
TC_CustProfile_0 Validate email and Check the displayed email and phone
8 phone display number
TC_CustProfile_0 Status color/tag
Observe status field on the profile
9 display
Inactive customer
TC_CustProfile_1 Deactivate a customer and check login
shows restricted
0 attempts
access in logs
Responsive behavior
TC_CustProfile_1 Open Customer Profile page on mobile
on mobile view (if
1 device or emulator
web-based)
TC_CustProfile_1 Error handling – Attempt to access a non-existent
2 profile not found customer profile via direct link
Active/Deactive Customer
Test Case ID Test Scenario Test Steps
1. Login as Admin
TC_CustStatus_0 Display status toggle
2. Go to Customer List 3. View a
1 button
customer profile or row

1. Click "Deactivate"
TC_CustStatus_0 Deactivate an active 2. Confirmation prompt appears
2 customer 3. (Optional) Enter deactivation
reason 4. Confirm
TC_CustStatus_0 Activate an inactive 1. Click "Activate" 2. Confirmation
3 customer prompt appears 3. Confirm
TC_CustStatus_0 Confirmation prompt
Click “Activate” or “Deactivate”
4 functionality

TC_CustStatus_0 Reason field available


Try to deactivate a customer
5 on deactivation

TC_CustStatus_0 Deactivation disables Deactivate customer and attempt login


6 login from customer side

TC_CustStatus_0 Deactivation disables Deactivate customer, attempt to book a


7 booking features service

TC_CustStatus_0 Action recorded in


Deactivate or activate a customer
8 system logs

Email sent to
TC_CustStatus_0
customer on status Change status of a customer
9
change
Multiple admins
TC_CustStatus_1 Deactivate a user while logged in as a
testing – action
0 specific admin
attributed correctly
UI reflects updated
TC_CustStatus_1
status in list and After deactivation/activation
1
profile views

Prevent duplicate
TC_CustStatus_1 clicks on Click the button repeatedly during
2 Activate/Deactivate loading
button
Attempt deactivation
TC_CustStatus_1 Leave reason empty if system enforces
without reason (if
3 input
required)
View Mandoob Payout Report
1. Login as Admin
Display Payout Report
TC_Payout_01 2. Navigate to "Payout Report"
Page
section

Validate visible
TC_Payout_02 Open payout report
columns in report

Validate data for a


TC_Payout_03 Find a row with status “Paid”
paid payout
Validate data for a
TC_Payout_04 Find a row with status “Pending”
pending payout
Check platform fee
TC_Payout_05 Check for platform fee in relevant rows
presence
Payout report
TC_Payout_06 supports sorting by Click on "Payment Date" column header
Payment Date
Search or filter by
Use search field to input partial/full name
TC_Payout_07 Mandoob Name or
or email
Email
Verify net payout
TC_Payout_08 View row where platform fee is applied
calculation
Pagination appears if
TC_Payout_09 records exceed 10/20 Scroll through long report
per page
Validate contact
TC_Payout_10 Check Mandoob email and phone
details visibility
Verify customer
TC_Payout_11 Check "Customer Name" field
details visibility
Payment Date is
TC_Payout_12 required for Paid Check entries marked as "Paid"
status
Data export feature (if Click "Export CSV" or "Download" (if
TC_Payout_13
applicable) implemented)
Mobile
TC_Payout_14 responsiveness (if Open report on mobile or resize screen
applicable)

Admin with limited


TC_Payout_15 access cannot view Login as non-finance admin
report (if roles apply)

View Customer Refund Report


Test Case ID Test Scenario Test Steps
1. Login as Admin
Display Customer
TC_Refund_01 2. Navigate to “Refund Report”
Refund Report page
section
Validate visible
TC_Refund_02 Open refund report
columns

Validate data for a


TC_Refund_03 Locate a refund with status "Paid"
paid refund
Validate data for a
TC_Refund_04 Locate a refund with status "Pending"
pending refund
Refund amount Check multiple entries with different
TC_Refund_05
format refund values
Filter by Refund
TC_Refund_06 Use filter to select “Pending” or “Paid”
Status

TC_Refund_07 Filter by date range Apply a custom date filter

Search by Customer Enter full/partial name or contact info in


TC_Refund_08
Name or Email/Phone search bar

Validate Service
TC_Refund_09 Name and Mandoob Open any row and verify against booking
Name
Validate Admin Info
TC_Refund_10 Check "Processed By" column
(Processed By)
Sorting by Refund
TC_Refund_11 Click “Refund Date” column to sort
Date
Sorting by Refund
TC_Refund_12 Click “Refund Amount” column to sort
Amount

TC_Refund_13 Pagination for long list Scroll through more than 10/20 refunds

Export report (if


TC_Refund_14 Click “Export” or “Download”
feature available)
Mobile
TC_Refund_15 responsiveness (if Open refund report on mobile device
applicable)
Access control for
TC_Refund_16 non-finance/admin Login as a restricted-role admin
roles
Filter By Date Range
Test Case ID Test Scenario Test Steps
Display date range 1. Login as Admin
TC_Filter_01
filter on Payout page 2. Go to “Payout Report” page
Display date range 1. Login as Admin
TC_Filter_02
filter on Refund page 2. Go to “Refund Report” page
1. Select Start Date = 1st July, End Date =
Apply valid date range
TC_Filter_03 15th July
– Payout Report
2. Click Filter/Refresh
1. Select Start Date = 1st July, End Date =
Apply valid date range
TC_Filter_04 15th July
– Refund Report
2. Click Filter/Refresh

Apply date range with Select Start Date = 1st Jan 2020, End Date
TC_Filter_05
no matching results = 10th Jan 2020

Date range with same Select same date for both Start and End
TC_Filter_06
Start and End date (e.g., 10th July)

Invalid range – End Select Start Date = 15th July, End Date =
TC_Filter_07
date before Start date 1st July

1. Apply a date filter


TC_Filter_08 Reset date filters
2. Click "Reset" or clear filters

Date filter remembers 1. Select date range


TC_Filter_09
user input 2. Navigate away and return

1. Select date range spanning end of day


TC_Filter_10 Timezone consistency
2. Check timestamps
Download as CSV/PDF
Test Case ID Test Scenario Test Steps
1. Login as Admin
Download button is 2. Go to “Refund” or “Payout”
TC_DL_01 visible after applying report 3. Apply any date/status
filter filter 4. Observe
Download button
1. Login as Admin
Download full report 2. Go to “Payout” or “Refund” report
TC_DL_02
without filters 3. Click “Download” without
applying filters

1. Select start date and end date


Download report with
TC_DL_03 2. Click “Filter”
date range filter
3. Click “Download”
1. Select status = "Paid"
Download report with
TC_DL_04 2. Click “Filter”
status filter (Refund)
3. Click “Download”
Download report with 1. Select date range + status = "Pending"
TC_DL_05 multiple filters 2. Click “Filter”
applied 3. Click “Download”
1. Apply filter (e.g., July 1–10,
File name reflects
TC_DL_06 status=Paid)
selected filters
2. Click Download
Downloaded file
TC_DL_07 Download any report
format is valid
Download button
1. Apply filters with no matching records
TC_DL_08 disabled when no
2. Observe Download button
results
Columns match visible
TC_DL_09 Download report after filter
report
Admin actions are 1. Admin downloads report
TC_DL_10
logged 2. Check system logs
View Cutomer Reports
Test Case ID Test Scenario Test Steps
1. Login as Admin
Report section is 2. Navigate to Reports
TC_CBR_01
accessible 3. Click on “Customer Booking
Activity”
All registered
TC_CBR_02 customers are Open the report
displayed
Customer details are
TC_CBR_03 View the report
displayed correctly
Booking activity data Compare report data with known
TC_CBR_04
is accurate bookings for a customer
Pagination works as Open report with more than 10-20
TC_CBR_05
expected records
Column sorting (e.g.
Click on column headers like “Total
TC_CBR_06 by Total Bookings or
Bookings” or “Amount Spent”
Amount Spent)
Filters (e.g., Date
TC_CBR_07 range for sign-up) Apply signup date range filter
work correctly
Search by name,
TC_CBR_08 Type partial/full value in search bar
email, or phone
“Total Amount Spent”
TC_CBR_09 includes only Verify calculation logic in report
completed bookings
Report is 1. Apply filters or view full list
TC_CBR_10
downloadable 2. Click “Download Report”
Downloaded report
Compare report in UI and downloaded
TC_CBR_11 matches on-screen
file
data
System logs the
TC_CBR_12 Admin views or downloads the report
admin action
View Completed Customer Booking Report
Test Case ID Test Scenario Test Steps
1. Login as Admin
Admin can access
2. Go to Reports section
TC_CB_01 Completed Bookings
3. Click on “Completed
report
Bookings”
Report displays
TC_CB_02 completed bookings Open the report
only
Booking details are
TC_CB_03 View records in the report
shown correctly
“Amount Paid”
Check value in “Amount Paid” for a
TC_CB_04 reflects actual
known completed booking
transaction
Completion Date is Compare Booking Date and Completion
TC_CB_05
after Booking Date Date
Pagination is
View report with more than 10–20
TC_CB_06 supported for large
records
data sets
Search by Booking ID,
Enter search text (partial/full) in search
TC_CB_07 Customer, or
bar
Mandoob
Sorting by Booking
TC_CB_08 Click column headers
Date or Amount Paid
Filter by Date Range
TC_CB_09 (Booking or Set a date range filter
Completion Date)
Report is 1. View filtered or unfiltered report
TC_CB_10
downloadable 2. Click “Download Report” button
Downloaded report
Compare downloaded report with
TC_CB_11 matches the on-
current screen view
screen report
Admin action is
TC_CB_12 View or download the report
logged in system logs
View Cancelled Booking Report
Test Case ID Test Scenario Test Steps
1. Login as Admin
Admin can access
2. Go to Reports section
TC_CBK_01 Cancelled Bookings
3. Click on “Cancelled
report
Bookings”
Only cancelled
TC_CBK_02 View all listed records
bookings are listed
Report displays
TC_CBK_03 complete booking Check each column for a record
cancellation info
Cancellation Status is
TC_CBK_04 View "Cancellation Status" field
shown correctly
Refund Status is
TC_CBK_05 View "Refund Status" field
shown correctly
Search by Booking ID,
TC_CBK_06 Customer, or Enter a search term
Mandoob
Filter by Cancellation Select filter: Requested / Approved /
TC_CBK_07
Status Rejected
Filter by Refund
TC_CBK_08 Select filter: Pending / Paid
Status

TC_CBK_09 Filter by Date Range Select start and end dates


Download report 1. Apply filter(s)
TC_CBK_10
based on filters 2. Click “Download Report”
Downloaded report
Open downloaded file and compare with
TC_CBK_11 matches filtered on-
visible records
screen data
Pagination works Scroll or move between pages if large
TC_CBK_12
correctly dataset
Cancelled booking
data includes
TC_CBK_13 View a record in the report
associated service
properly

Admin actions are


logged when viewing
TC_CBK_14 View/download report
or downloading
report
Filter By Date Range and Status
1. Go to Completed Bookings Report
Date picker is visible
TC_FILTER_01 2. Go to Cancelled Bookings
on both reports
Report
Status dropdown is
TC_FILTER_02 visible on both Open both reports
reports
Filter Completed 1. Open Completed Bookings Report
TC_FILTER_03 bookings by date 2. Select Start and End dates
range 3. Click Apply/Refresh
Filter Cancelled 1. Open Cancelled Bookings Report
TC_FILTER_04 bookings by date 2. Select Start and End dates
range 3. Click Apply/Refresh
1. Open Completed Bookings Report
Filter Completed
TC_FILTER_05 2. Choose status from dropdown
bookings by status
(e.g., Completed, Failed)
Filter Cancelled 1. Open Cancelled Bookings Report
TC_FILTER_06 bookings by 2. Select from dropdown
cancellation status (Requested, Approved, Rejected)
1. Select a date range
Combined filter –
2. Select status
TC_FILTER_07 Date + Status –
3. Apply filters on Completed
Completed report
Report
1. Select a date range
Combined filter –
2. Select status
TC_FILTER_08 Date + Status –
3. Apply filters on Cancelled
Cancelled report
Report
Invalid date range –
1. Set Start Date after End Date
TC_FILTER_09 start date after end
2. Try applying filter
date
Filter reset restores 1. Apply filters
TC_FILTER_10
full report 2. Click “Clear” or “Reset”
1. Apply filters
Filtered data matches
TC_FILTER_11 2. Click “Download Report”
downloaded report
3. Compare downloaded data
Pagination still works 1. Apply filters
TC_FILTER_12
after applying filters 2. Navigate to next pages
Create Term and Conditions & privacy policy
Test Case ID Test Scenario Test Steps
T&C creation form is 1. Log in as admin
TC_TC_01
accessible 2. Navigate to "Legal" or "T&C" section
1. Open T&C form
User type selection is
TC_TC_02 2. Check for dropdown or toggle
available
between Customer and Mandoob
1. Click inside content body area
Rich text editor is
TC_TC_03 2. Format text using bold, italic,
functional
bullets, etc.
Title field is 1. Leave Title empty
TC_TC_04
mandatory 2. Attempt to save form
Content body is 1. Leave content area blank
TC_TC_05
mandatory 2. Try to save form
Version number is 1. Enter Title and Content
TC_TC_06
auto-generated 2. Save form
T&C is saved 1. Fill in all required fields
TC_TC_07
successfully 2. Click Save/Publish
Versioned list displays
TC_TC_08 Go to T&C listing page
saved T&Cs

T&C list includes user


TC_TC_09 View the list of created T&Cs
type and version

T&C content preview


TC_TC_10 Click on any version in the list
is visible
T&C editing or
Click Edit/Duplicate on a saved T&C (if
TC_TC_11 duplication (if
feature exists)
allowed)
Validation on
1. Fill in form
TC_TC_12 switching user type
2. Switch user type
mid-form
Edit Term & Condition & Privacy Policy
Test Case ID Test Scenario Test Steps
View list of all T&C 1. Log in as Admin
TC_TC_EDIT_01
versions 2. Go to T&C section
1. Use filter to search T&Cs by Customer
Select specific version
TC_TC_EDIT_02 or Mandoob
or user type
2. Select specific version
Only latest version is Try to edit an older version (not latest or
TC_TC_EDIT_03
editable draft)
Editor loads with
TC_TC_EDIT_04 Click "Edit" on latest or draft version
latest content
1. Modify content
TC_TC_EDIT_05 Edit and save T&C
2. Save the form
Version number
TC_TC_EDIT_06 increments Save edited version
automatically
Update is logged with
TC_TC_EDIT_07 Save changes
admin ID

Notification sent to all


TC_TC_EDIT_08 Save the new version
users on T&C update

Updated T&C shown


Login as Customer or Mandoob after
TC_TC_EDIT_09 to users on next
update
login/interaction
Edited version
TC_TC_EDIT_10 appears at top of View T&C version list
versioned list
System prevents
Remove title/content before clicking
TC_TC_EDIT_11 saving if required
Save
fields are empty
Rich text formatting is 1. Edit content using formatting tools
TC_TC_EDIT_12 preserved after (bold, lists, etc.)
editing 2. Save & re-open
Admin Creation, Service creation, Service update, New booking, Booking cancellation, Successfull Refund, Successfull Payou
Test Case ID Scenario Test Steps
1. Register as Mandoob from public
New Mandoob
TC_NTF_01 portal
Registration Received
2. Submit registration
Customer Account
TC_NTF_02 Admin deactivates a customer account
Deactivated

TC_NTF_03 New Admin Added Super Admin adds a new admin

New Service Approval


TC_NTF_04 Mandoob submits new service
Request
Service Updated by
TC_NTF_05 Mandoob edits and saves service
Mandoob
Mandoob reactivates a previously
TC_NTF_06 Service Reactivated
deactivated service
New Booking
TC_NTF_07 Customer initiates a cancellation request
Cancellation Request
Booking Marked as
TC_NTF_08 Mandoob marks booking as completed
Completed
Refund Request
TC_NTF_09 Admin approves cancellation
Added to Queue

TC_NTF_10 New Booking Created Customer successfully creates a booking

New Chat Message


TC_NTF_11 Customer sends support chat message
from Customer
New Chat Message
TC_NTF_12 Mandoob sends support message
from Mandoob
Payout Marked as
TC_NTF_13 Admin marks payout as Paid
Paid

TC_NTF_14 Refund Processed Admin marks refund as Paid

TC_NTF_15 Report Exported Admin downloads a report

Terms & Conditions


TC_NTF_16 Admin updates and publishes T&C
Updated
Privacy Policy
TC_NTF_17 Admin edits and saves privacy policy
Updated
Admin performs a system action (e.g.,
TC_NTF_18 Activity Log Updated
delete, update, deactivate)
Log all activities like admin creation, updation, Catagory creation, Service approval, Service rejection, Refund, Payout
Test Case ID Module Action/Event
Admin Created/Updated/Deactivated
TC_LOG_001 User Management
another Admin
TC_LOG_002 User Management Admin Login/Logout
TC_LOG_003 User Management Mandoob Deactivated/Reactivate
TC_LOG_004 User Management Customer Deactivated/Reactivate
TC_LOG_005 User Management Password Reset Triggered

TC_LOG_006 Terms & Policy T&C Created / Updated


TC_LOG_007 Terms & Policy Privacy Policy Created / Updated
Category Created / Updated /
TC_LOG_008 Category & Service
Deactivated
TC_LOG_009 Service Management Service Created/Updated by Mandoob
TC_LOG_010 Service Management Service Approved/Rejected by Admin
Service Deactivated/Reactivated by
TC_LOG_011 Service Management
Admin
TC_LOG_012 Booking New Booking Created
TC_LOG_013 Booking Booking Chat Opened
TC_LOG_014 Booking Booking Cancelled by Customer
TC_LOG_015 Booking Cancellation Request Submitted
TC_LOG_016 Booking Cancellation Approved/Rejected
TC_LOG_017 Booking Booking Status Updated (Completed etc.)
TC_LOG_018 Booking Refund Initiated / Paid
TC_LOG_019 Booking Payout Processed
TC_LOG_020 Booking Booking Marked as Paid
TC_LOG_021 Chat & Support Chat Started (Booking, Mandoob, Admin)
TC_LOG_022 Chat & Support Admin Joined Booking Chat
TC_LOG_023 Reports CSV/PDF Export Triggered
TC_LOG_024 Reports Financial Report Exported

TC_LOG_025 Dashboard Widget Clicked (Optional)


TC_LOG_026 Dashboard Filter Applied on Dashboard
dashboard
Test Case ID Test Scenario Test Steps

1. Login as Admin
Admin views top KPIs
2. Navigate to Dashboard
TC-DASH-01 (tiles) for platform
3. Observe KPI
status
tiles

1.Login as Admin- Navigate to Dashboard


2.
Admin views booking
TC-DASH-02 line/bar chart for bookings
trends via charts
3. Toggle daily/weekly/monthly views 4.
Apply filters (category, mandoob type)

1. Login as Admin
Admin views pending
2.Go to Dashboard- Observe cards like:
TC-DASH-03 queue cards for quick
Pending Booking Cancellations/ Service
actions
Approvals/ Refund Requests/ Payouts

Admin views the most 1. Login as Admin


TC-DASH-04 recent 5–10 bookings 2.Navigate to Dashboard
in a table 3. Check recent bookings widget
Admin sees recent 1. Login as Admin- Scroll to “System
TC-DASH-05 system logs in Alerts”
dashboard widget 2. Observe last 5 system actions
1. Login as Admin
Admin checks
2. Scroll to Finance Summary
TC-DASH-06 monthly finance
widget
summary widget
3.Observe figures
priiority

Success message shown: "OTP sent to your


email."Navigate to OTP screen

Error: "Email not registered."

Show validation: "Email is required."

6-digit OTP sentCountdown timer starts at 01:30

Proceed to "Reset Password" screen

Error: "Invalid or expired OTP."

Error: "Invalid or expired OTP."

Error: "Resend limit exceeded." or button disabled

New OTP generatedTimer restarts

Button is disabled until countdown completes

Password reset successMessage: "Password reset


successfully. Please log in."

Error: "Passwords do not match."

Error: "Password must be at least 8 chars with


uppercase, number & symbol."
Show validation: "Password is required." and
"Confirm Password is required."

System prevents or warns about leaving flow

Expected Result

Admin is redirected to Admin Dashboard


Error message appears: “Invalid email or password.”

Error message appears: “Invalid email or password.”

Error message appears: “Invalid email or password.”

Validation messages are shown: “Email is required”,


“Password is required.”

Validation error: “Password is required.”

Validation error: “Email is required.”

Validation error: “Enter a valid email address.”

Characters are hidden (e.g., shown as bullets or


asterisks)

Should successfully log in if system treats emails as


case-insensitive

Login should fail with error: “Invalid email or


password.”

System shows lockout or warning message: “Too


many failed attempts. Try again later.” (If applicable)

User is redirected to Admin Dashboard or default


landing page

System should redirect to login screen, not allow


access to dashboard after logout

User stays signed in or token is preserved

User is immediately logged out and redirected to


the login screen
Server should reject the request with a 401
Unauthorized response
All user-related data (profile, access token,
documents) should be cleared from cache/local
store

User is redirected to the login screen

A toast/snackbar appears with message: “You have


been logged out successfully.”
User should not return to the dashboard; stays on
login screen

Only the current device should be logged out; other


remains active unless global logout is in place

Show error: "Logout failed. Please check your


connection." (if backend confirmation required)

Button shows loading spinner briefly (if applicable)

Logout button is present, visible, and functional

Expected Result

Service is successfully created and saved to the


database

Show error: "Category Name is required"

Show error: "Category Image is required"

Show error: "Image exceeds maximum allowed size


(5MB)"
Show error: "Only JPG and PNG formats are
supported"

Service is created successfully without a description

Show validation errors for name and image

No data is saved; user is returned to previous screen

Button only enables when validation is satisfied

Show error: "Category name already exists" (if


system prevents duplicates)
A thumbnail or preview of the image should be
displayed
Show validation error: "Category Name is required"

Show toast/snackbar: “Service created successfully”

Expected Result
Service listing page loads successfully and displays a
list of all services without error
Table shows: Category ID, Category Name, Status,
and Actions (Edit, Deactivate) columns
Correct status ("Active" or "Inactive") is displayed
for each service
User is navigated to an Edit Service page with
existing details pre-filled
Confirmation dialog appearsUpon confirmation, the
service is marked “Inactive” in the list
System does not allow duplicate deactivation or
shows a message like “Service is already inactive”
List updates in real-time showing only matching
services
Next page of services loads correctly and displays
new services
Updated status or details are correctly shown in the
services list

Expected Result

Status changes to “Inactive”Success message:


“Service deactivated successfully”

Deactivated category is not visible to Customers or


Mandoobs

Existing bookings still show the service; functionality


is not affected

Category remains active, no change in status

Category status changes to “Active”Success


message: “Catagory activated successfully.”
Activated category is now visible and selectable
again

Each action properly reflects on UI and shows


appropriate success messages

System should not allow or silently ignoreOptional:


show message “Service is already inactive”

Show error message: “Failed to update status.


Please try again later.”

System responds within 2–3 seconds, button


disables while processing to prevent multiple
requests

Expected Result

Edit form opens with pre-filled category name and


description.

Category updated successfully. Changes reflected


system-wide.

Show field-level error: "Category name is required."

Show error: "Name must be at least 3 characters."

Show error: "Only letters, numbers, hyphens, and


underscores are allowed."

Show error: "Category name already exists."

Only description is updated. Confirmation message


shown.

Show message or prevent submission: "No changes


detected."

Updated name appears in all modules.

Log includes admin ID and timestamp for the edit


action.
Appropriate error message shown (e.g., "Something
went wrong. Please try again later.").

Expected Result
List of registered Mandoobs is displayed with ID,
Name/Company, Email, Phone, Type, Status, and
Actions columns.
Each Mandoob row displays correct: - ID -
Name/Company Name - Email - Phone Number -
Type - Status - Action buttons

All Mandoobs are correctly tagged as either


"Individual" or "Corporate"

Mandoobs are sorted by most recent registration


date (latest first)

Pagination is displayed and works correctly

Redirected to a detailed profile page of the selected


Mandoob
Admin is taken to the edit screen with pre-filled
editable Mandoob data

Mandoob status changes to “Inactive”; success


message displayed

Mandoob status changes to “Active”; success


message displayed

Status updates immediately to “Active” or “Inactive”


depending on the action taken

Updated status and data persist correctly after


refresh

Mandoob status changes to “Inactive” Success


message: “Mandoob status updated successfully.”

No status change; Mandoob remains “Active”

Confirmation dialog shows: “Are you sure you want


to deactivate this Mandoob? They will not be able
to log in...”
Login should fail; message like “Account inactive”
shown

Mandoob status changes to “Active” Success


message: “Mandoob status updated successfully.”

Login is successful

Status column reflects updated value (Active or


Inactive) immediately

Action is recorded with correct admin ID and


timestamp

Active Mandoobs show “Deactivate” option;


Inactive ones show “Activate”

Expected Result

Filter dropdown or buttons for "All", "Corporate",


and "Individual" are visible

Only Mandoobs with type “Corporate” are displayed

Only Mandoobs with type “Individual” are displayed

Mandoobs of both types (Corporate and Individual)


are displayed
Filter remains applied and next page shows only
Corporate Mandoobs

A message is shown: “No Mandoobs found for


selected type.”

Sorted results remain within the selected filter


group

Search results are limited to the selected filter (e.g.,


Corporate)

A search bar is visible at the top of the Mandoob list

Mandoob(s) with exact full name match appear in


results

All Mandoobs with names containing the partial text


are shown
Mandoobs matching the email address are
displayed
Mandoobs matching the phone number are
displayed

Message shown: “No matching Mandoobs found.”

All Mandoobs are shown again

Search results apply only within selected type

Either no result or graceful handling (no crash, error


shown if unsupported characters)

Matching should be case-insensitive (e.g., "Ali",


"ALI", "ali" yield same result)

Table with service listing is visible

Each row shows: ID, Service Name, Category,


Mandoob Name, Status, Created/Approved Date,
Location, Actions

No pending or rejected services appear

Pagination controls allow viewing all approved


services

Table updates to show matching service(s)

Table updates with matching services by Mandoob

Full details of the selected service are shown

Status changes to “Inactive”; success message


shown

Dates are shown in a readable and consistent


format (e.g., DD-MM-YYYY)

Valid location information (city/area) is shown for


each service

Message: “No matching services found.” is shown


Table sorts accordingly (ascending/descending)

Expected Result

Full detail view of the service is displayed

Shows: ID, Service Name, Description, Image,


Mandoob Info (Name, Type), Category, Price,
Delivery Time, Location, Submission Date
Shows Mandoob Name and whether it’s Corporate
or Individual

Correct service image is visible

Service status changes to Approved Success


message shown

Service status changes to Rejected Success message


shown

“Approve” and “Reject” buttons are not visible

Shows accurate and readable location info (e.g.,


City/Area)
Price is shown with currency (e.g., SAR 50)
Estimated Delivery Time is in minutes or readable
format
Date is displayed in consistent readable format (e.g.,
15-Jul-2025)

“Approve” and “Reject” buttons should not be


shown

Action is logged with Admin ID and timestamp

Table of all services with status “Pending Approval”


or “Update Pending” is displayed
Columns include: Service Name, Mandoob Name,
Date Submitted, Location, Status, and Actions
Redirected to detailed view page for the selected
service
Service status updates to “Approved” Success
message displayed
Service status updates to “Rejected” Success
message displayed
Only services submitted in selected date range are
shown

Only services with that status are shown

Services sorted by most recent submission date

Pagination works correctly; only limited entries per


page are shown

Show message like “No pending services available”

“View”, “Approve”, “Reject” buttons are available


per row

Table adjusts/responsive properly for all screen sizes

Expected Result

Service detail page opens showing full submitted


info

Status is set to “Approved” Service is live Success


message shown

Status is set to “Rejected” Rejection reason saved


and shown Success message displayed

Validation error: “Rejection reason is required” is


shown

Mandoob sees notification with rejection reason

Admin ID and timestamp are logged in the system


logs

Service is available for booking immediately

Status changes to “Rejected” Mandoob is notified


Old service version remains unchanged

Service status updated to “Approved” Service


becomes available

Buttons are disabled or replaced after action Page


reflects updated status immediately
Expected Result

List displays matching service(s) with that name

List shows all services matching the partial name

List filters services under that category

List shows services with matching category

Message displayed: “No services found for the


search term.”
Only approved services matching the search term
are shown

Only pending services matching the term are shown

List resets to original state showing all services in


the current tab
Matching services are still shown (search is not case-
sensitive)

App does not crash or misbehave Either ignored or


no result shown safely

Only services submitted by the selected Mandoob


are displayed

Services submitted by Mandoob with that ID are


displayed

Only services submitted by Corporate Mandoobs are


shown

Only services submitted by Individual Mandoobs are


shown

Only services from Mandoobs in the selected


location are shown

Services that match all selected filters are displayed

Message displayed: “No services found for the


selected criteria.”
Only filtered Mandoob’s services are shown in each
tab

All filters are cleared; the full list of services is


displayed again

Matching Mandoob Names or IDs appear as


suggestions

A table of all booked services is displayed with


columns: Booking ID, Customer Name, Mandoob
Name, etc.
Bookings are sorted by newest (most recent booking
date) first

Pagination is available and functional

Only bookings with Pending status are shown

Only completed bookings are displayed

Only cancelled bookings are shown

Only bookings that are marked as Paid are shown

Only unpaid bookings are displayed

Only bookings within the selected date range are


displayed
Only bookings associated with that Mandoob are
shown

Bookings matching all selected filters are displayed

Filters are cleared and full booking list is shown


again
Message: “No bookings found for the selected
criteria.” is shown

Expected Result

Full booking detail page is displayed

Booking ID, creation timestamp, and update


timestamp are displayed
Customer Name, Phone Number, and Email are
shown
Mandoob Name, Phone, Email, and Type
(Individual/Corporate) are shown
Service Name, Category, Price, Location, and
Description (if applicable) are displayed
Booking status is shown (Pending, Completed,
Cancelled, etc.)

Payment status is displayed (Paid / Unpaid)

Invoice is displayed in a new tab or modal with all


relevant billing information

Placeholder or error message is shown for missing


fields, without crashing UI

Message shown: "Booking not found" or redirect to


listing page

Only bookings with status “Pending” or “In


Progress” are displayed

Only bookings with status “Completed” are shown

Only bookings with status “Cancelled” or “Rejected”


are shown
Message shown: “No bookings found for selected
filter.”

“Completed” filter is still applied, and corresponding


results are shown

All bookings are displayed regardless of status

Results reflect bookings matching all selected filters

Results update dynamically (real-time) or on filter


apply without full page reload

Filtered data persists across pagination

App handles gracefully – either defaults to all or


shows “No matching bookings found” message

Expected Result

Invoice modal or page opens showing booking,


customer, mandoob, service, and payment details
Invoice includes: Booking ID, Mandoob & Customer
info, Service title/description, Amount, Fees, Status

Shows correct amount paid, platform fee (if


applicable), and payout amount to Mandoob
Payment status shows “Unpaid” and no payout
amount shown

Invoice file is downloaded in PDF format

PDF contains all the same details as on-screen


invoice
Error message is shown: “Failed to download
invoice. Please try again.”

PDF downloads successfully on mobile devices

Shows cancellation note if applicable, and refund or


zero payout details

Access is denied or button is not visible

Expected Result

“Mark as Paid” button is visible only for completed


bookings

“Mark as Paid” button is not visible

Booking payment status updates to Paid Payment


date is saved
Entry is logged with Admin ID, timestamp, and
action “Marked booking as paid”
Mandoob receives a notification: “Payment for
booking [ID] has been confirmed.”
Customer receives a notification: “Your payment for
booking [ID] has been confirmed.”

Shows accurate Payment Date field

System shows message: “This booking is already


marked as paid.” or disables the button

Booking remains in “Paid” status with no loss of


data
Access is denied or button is not shown

Expected Result

Cancellation requests list is displayed

List shows: Request ID, Booking ID, Customer Name,


Mandoob Name, Service Name, Request Date

Requests are sorted by latest request date by


default

Data shown matches the linked booking record

Pagination is functional

Message: “No cancellation requests found.” is


displayed

Access is restricted or redirected

List adjusts correctly across devices

Expected Result
Only requests with paid bookings and
customer/mandoob initiated cancellations are
shown
Displays: Cancellation reason, timestamp, view chat
history, Approve & Reject buttons

Refund is approved, user notified, status updated,


action logged with timestamp and admin ID

Refund is rejected, user notified, status updated,


action logged
Shows communication history between customer
and mandoob

Those requests do not appear in the actionable list

Does not appear in this decision queue

Access is denied or redirected

Button click triggers correct action, updates UI and


status
Message: “No cancellation requests needing
approval” is displayed

Expected Result

Booking status set to "Cancelled" Request removed


from list Notifications sent Log entry created

Booking status updated to "Active / In Progress"


Request removed Notifications sent Log created

Confirmation modal appears with remarks field and


Confirm/Cancel buttons

Confirmation modal appears with remarks field and


Confirm/Cancel buttons

Notifications sent to Customer, Mandoob, and


Admin/Finance
Notifications sent to Customer, Mandoob, and
Admin

Request disappears from the "Pending" cancellation


list

Request appears in Refund Processing section

Booking list reflects correct updated status

Action is logged with Admin ID, timestamp, remarks


(if any), and Booking ID

Remarks appear correctly in system activity logs

System displays error or disables action buttons


The matching cancellation request appears

All matching requests with similar Booking IDs are


displayed
Matching cancellation request(s) for that customer
appear

List filters to requests matching that partial name

Matching results appear regardless of case

Display message: “No cancellation requests found


for the search term.”

Full cancellation request list is shown again

The same search results remain visible

Spaces are trimmed and search executes correctly

Pagination resets and search applies to full dataset

Expected Result
List of refund requests appears with correct
columns: Refund Request ID, Booking ID, Customer
Name, etc.
Only refund requests marked as pending are
displayed

Only refund requests with Paid status are shown

List filters to show only pending refund requests

List filters to show only paid refund requests

List only shows refund requests with approval dates


in that range

List is sorted with latest approval date on top

Matching refund request(s) are shown


Refund Amount column correctly displays amounts
for each request

System displays: “No refund requests found.”

Full refund list is shown again

Additional refund requests are displayed

Results appear regardless of text case

Expected Result

Refund detail page opens showing all required


information

Booking ID is displayed correctly

Customer information is accurate and complete

Mandoob information is accurate and complete

Amount matches the service’s original booking fee

Refund amount is correct as approved during


cancellation

Correct approval date is displayed

Remarks provided during cancellation decision are


shown

Redirects to a read-only view of chat between


customer and mandoob

Status history is visible and updated chronologically

Input is disabled; chat is read-only

Show error: “Refund request not found” or redirect


to listing

Access denied or redirected with message:


“Unauthorized access”

"Mark as Paid" button is visible


"Mark as Paid" button is not visible

Confirmation prompt with "Confirm" and "Cancel"


options is displayed

Action is aborted, refund status remains unchanged

Refund status is updated to "Paid"

Admin ID and timestamp of payment marking are


correctly logged
Customer receives notification of refund
confirmation

Mandoob receives notification, if applicable

Status of marked refund is shown as "Paid"

Button is disabled or removed once refund is


marked as paid

Error message shown; status not changed

Access denied or "Unauthorized action" message


displayed

List of all admin users is displayed with correct


columns

Columns include: Admin Name, Email, Role, Status,


Created Date, and Action buttons

Correct Role (e.g., Manager, Finance) and Status


(Active/Inactive) shown

Admin details open in edit mode or on an edit


screen

Confirmation prompt is shown; admin status


changes to Inactive after confirmation

“Active” and “Inactive” are visually distinguishable


(e.g., colored labels or icons)
List is sorted in ascending/descending order based
on created date
Pagination controls are shown; admins load
correctly per page
Access is denied or redirected to dashboard with
error message

List filters results based on search term

Message shown like “No admin users found.”

Status shows as “Inactive” and edit/deactivate


button is disabled or changed to “Activate”

Expected Result

Admin list filters and shows the matching entry

All admins matching the partial name are displayed

Specific admin with that email is shown

All matching admin records are listed

Message shown: “No admin users found” or empty


state displayed
System returns correct result regardless of input
case

Full list of admins is displayed again

Search bypasses pagination and shows the correct


user directly

Results are scoped within the applied filter, showing


only active users matching the search term

Placeholder guides user: “Search by Name or Email”

Expected Result

Admin status changes to “Inactive” Admin loses


login access Success message displayed

Admin status updates to “Active” Admin regains


login access Success message displayed
No changes applied to admin status

System prevents login Error message: “Your account


is inactive. Contact Super Admin.”

Login successful

Status text updates to “Active” or “Inactive” as


appropriate

System logs the action with timestamp, admin ID,


and action (“Activated” / “Deactivated”)
Toggle switch updates visually to reflect new state
(on/off)
System shows error message: “Status update failed.
Please try again.”

Option not visible or access denied message shown

Expected Result

Admin account is created Success message shown


Email sent with login link Status = Active

Error: “Email already exists”

System shows validation messages (e.g., “Name is


required”, “Email is required”)

List shows all roles (Support, Finance, Manager, etc.)

Privileges are assigned and saved successfully

Temporary password is generated and included in


email
Admin account is created with the entered
password
Admin receives email with login link and temporary
password

Admin status = Active in admin listing

System prompts to reset password before accessing


the dashboard
System shows error: “Password too weak” (if such
validation exists)

Admin not created, return to listing page

Newly added admin appears with correct name,


email, role, status = Active

System shows: “Enter valid email address”

Error shown: “Failed to create admin. Please try


again.”

Customer list is displayed with correct columns:


Name, Email, Phone, Registration Date, Status,
Actions
Next set of customers is loaded and displayed
properly
Full customer profile opens showing additional data
(if available)

Customer status changes to Inactive Customer loses


platform access Confirmation prompt shown

Customer status changes to Active Access restored


Confirmation prompt shown
Each row shows accurate values for name, email,
phone, registration date, and status

Message shown: “No customers found”

Message shown: “Unable to load customer list.


Please try again later.”

Status is updated without needing full page refresh

Matching customers are displayed

Customer list is sorted ascending/descending


accordingly

Total count remains accurate No duplicates or


missing entries

Expected Result

Matching customer(s) with full name appear in the


list
All customers containing the partial name in their
name are shown
Exact match of the customer with that email is
shown

All matching results containing that string are shown

Exact customer profile is displayed

All customers with phone numbers containing that


sequence are shown

Message shown: “No results found”

Results should appear regardless of letter casing

Matching profiles appear if system supports flexible


matching

Full customer list is reloaded

Results appear within acceptable time frame (e.g., <


2 seconds)

System handles gracefully without crashing

Customer details page opens showing name, email,


phone, signup date, last login, and current status

Stats for total bookings, completed, cancelled,


active, and amount spent are displayed correctly

All numbers match backend booking data accurately

Status changes to “Active”, user regains platform


access
Status changes to “Inactive”, user loses platform
access

Confirmation prompt appears before status is


changed

“Last Login” date is shown (based on last successful


login timestamp)

Matches customer registration info

Status is clearly labeled with color code or icon (e.g.,


Green = Active, Red = Inactive)
System should block login and optionally log
unauthorized access attempt

Layout adapts without breaking, all info is accessible

System displays “Profile not found” or redirects to


customer list

Expected Result

Button labeled "Deactivate" (if Active) or "Activate"


(if Inactive) is visible

Customer status changes to "Inactive" User loses


login/booking ability Action logged

Customer status updates to "Active" Login/booking


access restored Action logged
Confirmation modal appears with “Confirm” and
optional “Reason” field

Optional remarks or reason field is shown for audit


trail

Login fails with message like “Account inactive”

Booking functionality disabled; message shown


“Account deactivated”

Log entry contains admin ID, action


(activate/deactivate), customer ID, timestamp, and
optional remarks

Customer receives email: “Your account has been


activated/deactivated by admin”

Log shows correct admin ID responsible for the


action

Customer status is immediately updated in list view


and profile page

Button is disabled after first click to prevent multiple


submissions
Error shown prompting to provide reason (if system
makes it mandatory)

Payout report page loads successfully

Columns displayed: Booking ID, Mandoob Name,


Mandoob Email/Phone, Customer Name, Platform
Fee, Net Payout Amount, Payment Date, Status

Shows correct booking ID, net amount, payment


date, and other details
Status shows “Pending”, payment date may be
empty or show scheduled date
Platform fee is displayed as 0 or actual value where
applicable

Rows are sorted ascending/descending based on


date

Matching results are shown

Net Payout = Booking Amount - Platform Fee

Pagination is available to navigate between pages

Details are accurate and complete

Name displayed matches booking data

Each has a non-empty Payment Date

CSV contains all columns as seen in report

Layout adjusts responsively or horizontal scroll


appears

Payout report section is hidden or access denied

Expected Result
Refund report page loads successfully
Columns displayed: Customer Name, Email/Phone,
Booking ID, Service Name, Mandoob Name, Refund
Amount, Refund Date, Refund Status, Processed By

Refund Date is present, Status is “Paid”, Admin info


shown
Refund Date may be empty or show scheduled date,
Status is “Pending”
Refund Amounts display in proper currency format
(e.g., PKR 1,000.00)

Only relevant refund records are displayed

Refunds falling within the selected date range are


shown

Matching refund records are displayed

Correct Service and Mandoob associated with


booking are displayed

Admin Name/ID of who marked the refund is visible

Rows sorted ascending/descending by date

Refunds sorted by value correctly

Pagination is available

Downloaded file contains all visible data fields

Layout adapts to smaller screens

Refund report is hidden or shows access denied

Expected Result
Start and End date pickers are visible

Start and End date pickers are visible

Only payouts within 1st–15th July are shown


Only refunds within 1st–15th July are shown

System shows "No records found" or empty report

Only records for that specific date are shown

Error or validation prevents filtering

Full report is shown again (no date filtering applied)

Previously selected date range remains applied or


remembered (if feature exists)

Records correctly fall within local timezone period


selected

Expected Result

Download button is visible and enabled

Full report is downloaded with all data

Report contains only records within selected date


range

Report includes only "Paid" refund entries

Report matches both filters applied

File name includes filters (e.g.,


refunds_paid_2025-07-01_to_07-10.csv)

File opens in Excel/CSV viewer with proper columns


and format

Button is disabled or tooltip shows “No data to


export”
File contains the same columns as displayed in UI

Action is logged with timestamp and admin ID

Expected Result

Report screen loads successfully

List displays all registered customers

Columns show: Name, Email, Phone, Signup Date

Values for Total Bookings, Completed, Cancelled,


Amount Spent are accurate

Report shows paginated view

Records are sorted accordingly

Report updates to show only users within selected


range

Matching records are displayed

Amount matches sum of completed booking prices

CSV or Excel file is downloaded with shown data

Data is consistent

System logs include action type, timestamp, admin


ID

Expected Result

Completed Bookings report page opens successfully

All bookings listed have status = Completed

Booking ID, Customer Name, Mandoob Name,


Service Name, Booking Date, etc. are shown
Amount matches the transaction record

Completion Date is later than or equal to Booking


Date

Pagination is available and working

Matching records are shown

List gets sorted accordingly

Report updates to show only bookings within the


selected range

CSV or Excel report is downloaded

Data is accurate and matches UI

Action is logged with admin ID, timestamp, action


type

Expected Result

Cancelled Bookings report page is displayed

All bookings have a status of "Cancelled"

Shows: Booking ID, Customer Name, Mandoob


Name, Service Name, Cancellation Date

Shows one of: Requested, Approved, Rejected

Shows either: Pending, Paid

Matching cancelled bookings are shown

Report updates accordingly

Only matching entries are displayed

Only bookings with cancellation dates within the


range are shown
A CSV/Excel report is downloaded with the filtered
data

Both datasets match

Records load and paginate as expected

“Service Name” is accurate and matches the original


booking

Audit log entry created with admin ID, action,


timestamp

Start and End Date pickers are shown on both pages

Status filter dropdown is present

Report shows bookings completed within the


selected date range

Report shows bookings cancelled within the


selected date range

Report updates to only show selected status entries

Report updates accordingly

Report shows only those matching both date and


status criteria

Report shows only those matching both criteria

Error message is shown or Apply button is disabled

Full unfiltered report is shown again

Downloaded file matches filtered data


Pagination works correctly on filtered dataset

Expected Result
T&C creation form is visible

Admin can select between Customer or Mandoob

Rich text editor allows editing and formatting

Error message shown, field is required

Error shown, content is required

A new version number is auto-assigned (e.g., v1.0,


v1.1, etc.)

T&C is saved and shown in versioned list

All saved terms are listed with: Title, User Type,


Version, and Date Created

Each entry includes Customer/Mandoob, Version


number

Full formatted T&C content is shown

Form prefilled with previous version content; new


version number assigned on save

System warns or retains fields depending on


requirement

Expected Result
T&C list is displayed with version numbers, user
types, and statuses

Corresponding T&Cs are listed

Edit action disabled or restricted message shown

Editor opens with current T&C content prefilled

New version created (e.g., v2.1), old version remains


archived
System generates a new version number based on
last version (e.g., from v2.0 to v2.1)

Audit log includes Admin ID, timestamp, version


updated

All users receive notification (e.g., via email or


platform alert) about updated Terms

User sees the updated Terms before accessing the


platform

New version (e.g., v2.1) is listed at the top

Error message is shown – required fields cannot be


blank

Content formatting is retained in new version

ng cancellation, Successfull Refund, Successfull Payout (Notification)


Expected Result

Admin receives notification: “A new registration


request has been submitted by [Mandoob Name].”

Admin system logs: “[Customer Name] has been


deactivated by the admin.”
Notification: “A new admin account for [Admin
Name] has been created.”
Notification: “[Mandoob Name] has submitted a
new service “[Service Name]” for approval.”
Notification: “[Mandoob Name] has updated
“[Service Name]”. Please review if needed.”
Notification: “A previously deactivated service
“[Service Name]” has been reactivated.”
Notification: “A cancellation request has been raised
by [Customer Name] for booking [ID].”
Notification: “[Mandoob Name] marked booking
[ID] as completed.”
Notification: “Approved cancellation for booking [ID]
has entered the refund queue.”
Notification: “Booking [ID] was successfully created
by [Customer Name].”
Notification: “[Customer Name] has sent a support
message.”
Notification: “[Mandoob Name] sent a support
message.”
Notification: “Payout of AED [Amount] has been
marked as paid to [Mandoob Name].”
Notification: “Refund for booking [ID] has been
marked as paid to [Customer Name].”
Notification: “[Admin Name] exported a report from
the system.”
Notification: “New version of Terms & Conditions
has been published.”
Notification: “Privacy Policy has been edited and
saved.”
Notification: “A new system activity has been
logged: [Action Summary].”
ice approval, Service rejection, Refund, Payout
Test Steps
1. Admin creates, updates, or deactivates another
admin
1. Admin logs in and logs out
1. Admin deactivates/reactivates mandoob
1. Admin deactivates/reactivates customer
1. Reset password for Admin/Mandoob/Customer

1. Admin creates or updates Terms and Conditions


1. Admin creates or updates privacy policy
1. Admin manages categories
1. Mandoob adds or edits a service
1. Admin approves or rejects service
1. Admin deactivates/reactivates a service
1. Customer books a service
1. Booking initiated and chat opened
1. Customer cancels an active booking
1. Customer raises cancellation request
1. Admin reviews cancellation
1. Mandoob marks booking as completed
1. Admin initiates and processes refund
1. Admin marks payout as paid
1. Admin marks booking as paid
1. Chat session initiated between any actors
1. Admin joins a customer-mandoob chat
1. Admin exports any report
1. Admin selects date range and downloads financial
report
1. Admin clicks dashboard widget (if tracking
enabled)
1. Admin changes KPI filters on dashboard

Expected Result
KPIs are visible showing:- Total Bookings- Completed
Bookings- Cancelled Bookings- Total Revenue-
Payouts Processed- Platform Earnings- Registered
Mandoobs (Corporate/Individual)- Registered
Customers

Booking activity graph updates as per selected time


range and filters

Each card displays count and CTA to review related


items

Table displays Booking ID, Customer Name,


Mandoob Name, Status (color-coded), and Action
buttons (View, Chat, Invoice)

Widget displays recent activities like:- Admin login-


Service approval- Refund processed

Displays:- Total Revenue This Month- Total Payouts


This Month- Pending Refunds Count

You might also like