QA Go-Live Checklist

AAM HR Recruitment System — Pre-Launch QA

Overall Progress0/180 reviewed
0
Passed
0
Failed
180
Pending
Login with valid credentials works
Login with invalid credentials shows error message
Session persists across page refreshes (localStorage check)
Logout clears session and redirects to login
User role (admin/hr/ceo/staff) is correctly assigned
Non-authenticated users are redirected to login
Password hashing works (hashPassword function)
Admin can create new users (HR, CEO, Admin, Staff)
Admin can update user passwords
Admin can view all users
Admin can delete users
Staff role only sees Applicants page
CEO has access to offer approvals
HR has full dashboard access
PRO role user sees only 'PRO — Visa Processing' in sidebar
PRO role user is redirected to PRO Portal on login (not dashboard)
Admin can create new job postings
All required fields (title, department, location, type) are mandatory
Job description supports rich text/markdown
AI screening questions are auto-generated
Company logo uploads work
Salary ranges are displayed correctly
Job status toggles (Open/Paused/Closed)
Job edit preserves existing data
Jobs display on public Careers page
Job filters (department, location, type) work
Search functionality finds jobs by title/keyword
Job detail page loads all information correctly
Candidates can apply via public job portal
All required fields are validated
File uploads (CV, certificates) work
Email confirmation sends on application
Reference number is generated and displayed
Application confirmation page displays correct info
Candidate can track application status
Candidates can login with reference number + mobile
Application status timeline displays correctly
CV versions track upload history
Additional documents can be uploaded
Candidate messages are sent/received
All applicants list loads with search and filters
Status filter works (all stages)
Job filter and company filter work
Bulk AI shortlisting works with custom criteria
Applicant detail view loads all data
Status change dropdown works for all stages
Staff users only see applicants for assigned jobs
Run AI Score button generates match score (0-100)
Score includes skill match, experience, education metrics
AI recommendations suggest next stage
Risk flags display correctly
Interview questions are generated
Status auto-updates based on score threshold
Video request can be sent with deadline (24/48/72h)
Candidate receives video request notification
Candidate can record and submit video response
HR can run AI video scoring
Video scores display (communication, confidence, role fit, etc.)
Authenticity detection shows correctly
HR can schedule interviews (date, type, location/link)
Candidate receives interview confirmation email
Candidate can confirm attendance
Candidate can request reschedule with 3 time slots
HR can approve/deny reschedule requests
Interview details display on portal
Interviewers can submit feedback (score, notes, decision)
AI generates summary of interview feedback
HR can create offer with all details
Salary breakdown calculates correctly (monthly/yearly totals)
All allowances calculate correctly
Offer PDF can be generated
Offer can be submitted for CEO approval
CEO can see pending offers for approval
CEO can approve offer — candidate notified via email (Offer stage email sent)
CEO can reject offer with reason — HR notified
Candidate can accept offer
Candidate can decline with reason
Candidate can negotiate with request notes
Signature pad captures signature
Signed PDF generates with logo, terms, signature
PDF is emailed to candidate after signing
Negotiation history thread displays correctly
AI negotiation analysis works
Offer expiry countdown shows on candidate portal (yellow ≤2 days, red expired)
Accept/Negotiate buttons are hidden when offer is expired on candidate portal
HR sees expiry status banner on applicant detail (pending offers)
HR +3d / +5d / +7d quick-extend buttons work and update offer_valid_until
Negotiation reply auto-extends offer by 5 days
Daily 9am expiry alert emails HR/admin listing expired & expiring-today offers
HR 'Send Reminder' button on expiry banner sends email with direct portal link
Candidate can open portal link from reminder email and sign directly
HR 'Resend Offer by Email' button appears on CEO-approved, unsigned offers
Resend offer email contains full salary breakdown, benefits, terms & portal link
Candidate can open portal from resent email, view full offer, and sign — signature saves to application
After signing and status changes to 'Hired', offer letter remains fully visible in candidate portal
Accept/Negotiate/Decline buttons are hidden when status is 'Hired' (offer already signed)
Candidate can access KYC portal
Required documents can be uploaded (passport, ID, certificates)
Personal info form captures all data
Submission sends to HR review
HR can review and verify submitted KYC documents
HR can approve/reject with reason
Candidate is notified of KYC status
AI-generated onboarding checklist creates on hire
Checklist items have due dates and assignees
HR can mark items complete
Progress percentage calculates correctly
Onboarding documents display for signing
Onboarding status updates (Not Started/In Progress/Completed)
Application received confirmation email sends
AI shortlisting notification sends
Interview scheduled notification sends
Video interview request sends with deadline
Offer sent notification sends
Offer approved/rejected notification sends
KYC request notification sends
Hire notification sends
Rejection notification sends
Message timestamps display in UAE time (Asia/Dubai)
HR negotiation reply email sends with actual reply message + portal link
HR document request email sends listing all requested docs + portal link
Document request banner appears in candidate portal with items listed
Candidate can upload each requested document individually from the portal
Uploaded HR-requested docs appear in application's additional_documents with [HR Request] prefix
All-done banner appears once all requested documents are uploaded
HR Document Request Tracking section appears in applicant detail when request exists
Each requested doc shows ✓ green when candidate uploads it, Pending otherwise
View/download link works for each uploaded HR-requested document
X/Y documents received counter is accurate and updates after uploads
Candidate can access portal with reference number + mobile
Portal shows correct application status timeline
Offer section is visible once status = Offer & CEO Approved
Offer expiry countdown renders correctly
Accept/Sign flow works end-to-end (signature → PDF → email)
Negotiate flow sends message to HR & auto-extends offer 5 days
Decline flow saves reason and updates offer_response
Document request banner shows when HR has requested docs
Candidate can upload each requested document from portal
All-done banner appears once all docs uploaded
LIVE TEST: Dr. Rushdy (AAMHR-2026-786826) can access portal, view offer, and sign
After signing, candidate portal still shows full offer letter (not blank)
After hiring, Work Permit section shows 'Visa being processed' until PRO uploads permit
Work Permit download button appears in candidate portal after PRO uploads document
PRO portal is accessible from sidebar for admin/hr/ceo roles
Hired employees appear in PRO portal list
Stats (Total Hired, In Progress, Work Permit Issued, Visa Stamped) show correct counts
Search by name/job/reference filters correctly
Visa stage tracker displays all 8 stages correctly
Clicking a stage updates visa_processing_status and saves to DB
Stage change is logged to visa_processing_history with user name + timestamp
Internal PRO notes field saves correctly (HR/CEO only)
Stage history log displays in reverse chronological order
Work Permit upload button opens file picker correctly (not stuck on 'Uploading')
Work Permit upload works (PDF, image accepted)
After upload, status auto-sets to 'Work Permit Issued'
Uploaded work permit is visible/downloadable from PRO portal
Replace existing work permit upload works
Candidate sees 'Visa being processed' message in portal (before upload)
Candidate sees 'Work Permit' download button in portal after upload
Work permit issued date displays correctly in candidate portal
Badge 'Permit ✓' shows on PRO list row after upload
PRO section only visible to Hired status applications (not Offer/Interview etc.)
Non-authenticated users cannot access HR pages
Non-admin users cannot access user management
Non-CEO users cannot approve offers
Candidates cannot see other applications
Passwords are hashed (not stored plain text)
Staff users restricted to assigned job applicants only
Session tokens are secure
PRO role users cannot access HR Dashboard, Jobs, Applicants, or other HR pages
HR dashboard loads in <3 seconds
Applicant list loads with large datasets
PDF generation completes in reasonable time
HR dashboard is mobile-responsive
Signature pad works on mobile
File uploads work on mobile
Navigation works on small screens
Missing required fields show validation messages
500 errors display friendly message
Email templates variables ({{name}}, {{position}}) work

Sign-Off

Progress auto-saved to browser. 0% passed (0/180 items).