Testing Guide: Real Estate Agent Role
What is this? A feature-by-feature reference for testers. Go through each section below, verify the expected behaviour, and log any issues you find.
App URL:
https://casahub.jh.frappe.cloud/qejaYour role for this test: Real Estate Agent
1. Registration
| Step | What to do | Expected result |
|---|---|---|
| 1 | Go to /qeja and click Create Account |
Sign-up form appears |
| 2a | Enter first name, last name, email, password and submit | Account is created, you are logged in automatically |
| 2b | Or click Sign in with Google | Google OAuth flow completes, account is created |
| 3 | After sign-up | You land on /onboarding-check -- you cannot access any dashboard yet |
Things to check:
-
Duplicate email is rejected with a clear message
-
Password requires 8+ characters
-
Empty required fields show validation errors
-
Welcome email arrives
2. Login
| Step | What to do | Expected result |
|---|---|---|
| 1 | Go to /qeja/login, enter credentials |
Logged in successfully |
| 2a | If onboarding incomplete | Redirected to /onboarding-check |
| 2b | If onboarding complete | Redirected to /agent/dashboard |
| 3 | Wrong password | Clear error message, not a generic server error |
| 4 | Forgot password link | Password reset email is sent |
3. Logout
| Step | What to do | Expected result |
|---|---|---|
| 1 | Click profile/avatar in sidebar, click Logout | Session ends, redirected to login page |
| 2 | Try to visit /agent/dashboard directly |
Redirected to login -- no access |
4. Onboarding -- Profile Completion
| Step | What to do | Expected result |
|---|---|---|
| 1 | You land on /onboarding/profile |
Form shows: phone number (with +254 default), gender, date of birth |
| 2 | Fill in all fields and click Continue | Data saves, you move to /onboarding/role |
| 3 | Try to skip without filling required fields | Validation blocks you |
5. Onboarding -- Role Selection
| Step | What to do | Expected result |
|---|---|---|
| 1 | You land on /onboarding/role |
4 role cards displayed |
| 2 | Click Real Estate Agent | Card highlights with a checkmark |
| 3 | Click Continue | You are assigned the agent role and land on /agent/dashboard |
Things to check:
- Only one role selectable at a time
- Cannot proceed without selecting
- Onboarding does not repeat on next login
6. Agent Profile
This is your professional profile visible to developers/managers in the agent directory.
6a. Profile Setup & Editing
| Section | Fields to fill | Expected behaviour |
|---|---|---|
| Personal info | Bio, years of experience | Saves; completeness % updates |
| Identification | ID type (National ID, Passport, etc.), ID number | Saves with validation |
| Company info | Company name, registration, website, phone | All optional; saves correctly |
| License info | License number, issuing authority, expiry date | Saves; expiry tracked for reminders |
| Specializations | Property types, specializations (multi-select from registry) | Saves; values come from system registry |
| Languages | Languages spoken (multi-select) | Saves correctly |
| Communication | Preferred method (Phone, Email, WhatsApp, SMS) | Single select; saves |
| Social media | LinkedIn, Facebook, Instagram, Twitter/X URLs | Saves as link pairs |
Things to check:
- Profile completeness percentage updates as you fill fields
- Real-time validation and save feedback (success/error toast)
6b. Profile Publishing
| Feature | What to do | Expected result |
|---|---|---|
| Publish | Click Publish | Profile appears in Agent Directory; requires minimum fields filled |
| Unpublish | Click Unpublish | Profile removed from directory |
| Status | Check profile status display | Shows Draft, Active, Inactive, or Suspended |
| Published date | Publish profile | Published date auto-set |
6c. Document Uploads (KYC)
| Feature | What to do | Expected result |
|---|---|---|
| Upload document | Click upload, select type (ID Copy, License Certificate, Tax Certificate, Insurance, etc.) | File uploads with correct document type |
| View documents | Go to documents section | All uploaded docs listed with type, name, date, expiry, verification status |
| Expiry tracking | Upload a doc with expiry date | System tracks expiry; reminder sent when approaching |
| Verification status | View a document | Shows: Pending, Verified, Rejected, or Expired |
Things to check:
-
Can upload multiple document types
-
File upload shows progress
-
Cannot proceed to some features without KYC documents submitted
6d. KYC Status
| Status | What it means |
|---|---|
| Not Started | No documents uploaded |
| Incomplete | Some documents uploaded but not all required |
| Profile Complete | All required fields and docs submitted |
| Verified | Admin has verified your documents |
| Rejected | Admin rejected -- reason should be visible |
7. Agent Dashboard
| Section | What you should see | Expected behaviour |
|---|---|---|
| Quick stats | Active Projects, Total Leads, Conversion Rate %, Total Commissions | Values match actual data |
| Performance | Total projects, access requests submitted, approval rate, units sold, revenue generated | Accurate counts |
| Profile completion | Completeness % with missing field hints | Percentage matches profile state |
| Visibility status | Published/Not Published badge, Verified/Not Verified, License status | Matches actual profile |
| Rating & reviews | Average rating, total reviews | Matches actual reviews (if any) |
Things to check:
-
Dashboard loads without errors or stuck spinners
-
All stat values are accurate
-
No console errors
8. Project Discovery
| Feature | What to do | Expected result |
|---|---|---|
| Browse projects | Click Projects in sidebar | Grid/list of available projects seeking agents |
| View project details | Click a project card | Project detail page: name, location, units, pricing, payment plans, commission structure |
| Filter projects | Filter by location, price range, unit types, status | Results update correctly |
| Commission info | View commission section on a project | Shows commission rate/type for agents |
Things to check:
-
Only published projects are visible
-
Project details load fully (images, stats, developer info)
-
Unpublished or draft projects are not shown
9. Project Access Requests
| Feature | What to do | Expected result |
|---|---|---|
| Request access | Click Request Access on a project | Modal/form appears for motivation message |
| Submit request | Enter message and submit | Request created with "Pending" status; toast confirms |
| View my requests | Go to /agent/applications?tab=requests |
All your requests listed with project, date, status |
| Withdraw request | Click Withdraw on a pending request | Request withdrawn; status updates |
| Approved request | After manager approves | Status changes to Approved; you now have access to the project |
| Rejected request | After manager rejects | Status changes to Rejected; reason visible |
Things to check:
-
Cannot request access to same project twice
-
Notification arrives when request is approved/rejected
-
After approval, project appears in your active projects
-
Withdrawal only works on pending requests
10. Lead Management
This is the core CRM feature for agents.
10a. Create Lead
| Step | What to do | Expected result |
|---|---|---|
| 1 | Navigate to /agent/leads, click Create Lead |
Lead form appears |
| 2 | Fill required fields: lead name, phone, project | Validation enforces required fields |
| 3 | Fill optional fields: email, source, budget range, preferred unit type, priority, notes | All save correctly |
| 4 | Submit | Lead created with auto-generated number (LEAD-.YYYY-.#####); stage defaults to "New" |
Things to check:
-
Phone number auto-normalizes
-
Can only create leads for projects you have access to
-
Lead priority options: Hot, Warm, Cold
-
Lead source options: Direct, Website, Referral, Portal, Event, etc.
10b. Lead Pipeline
| Feature | What to do | Expected result |
|---|---|---|
| View all leads | Open leads page | Table of all your leads with pagination (20/page) |
| Filter by stage | Select a stage filter | Only leads in that stage shown |
| Filter by priority | Select Hot/Warm/Cold | Filters correctly |
| Filter by project | Select a project | Only leads for that project shown |
| Search | Type name, phone, or email | Matching leads shown |
| Lead stats | View summary section | Total leads, leads by stage, by priority, conversion rate |
10c. Lead Stage Transitions
Leads move through this pipeline:
| Stage | Description |
|---|---|
| New | Just created, not yet contacted |
| Contacted | Initial contact made |
| Viewing Scheduled | Property viewing appointment set |
| Viewing Done | Viewing completed |
| Negotiating | Price/terms discussion in progress |
| Booking | Client ready to book a unit |
| Converted | Lead became a paying customer |
| Lost | Lead did not convert |
| Feature | What to do | Expected result |
|---|---|---|
| Change stage | Click a lead, change stage dropdown | Stage updates; activity logged |
| Mark as lost | Click Mark Lost, enter reason and notes | Lead moves to Lost; reason saved |
| Set follow-up | Set next follow-up date | Date saved and visible in lead detail |
10d. Lead Activities
| Feature | What to do | Expected result |
|---|---|---|
| Log activity | On a lead, click Log Activity | Form: activity type, summary, outcome |
| Activity types | Select from: Call, Meeting, Site Visit, Email, SMS, Follow-up, Note, Other | Saves with timestamp |
| View timeline | Open lead detail | Full activity history in chronological order |
| Search activities | Search/filter activities | Results filter correctly |
10e. Lead Conversion
| Step | What to do | Expected result |
|---|---|---|
| 1 | Open a lead in Booking stage, click Convert | Conversion form appears |
| 2 | Select target unit from project inventory | Unit dropdown shows available units |
| 3 | Select payment plan template (if available) | Plan applies |
| 4 | Confirm conversion | Customer record created; payment schedule generated; lead marked "Converted" |
| 5 | After conversion | Lead shows converted date, unit, and customer reference |
Things to check:
-
Only leads in appropriate stages can be converted
-
Unit is reserved/booked after conversion
-
Manager is notified of the conversion
-
Cannot convert a lead that is already converted or lost
11. Contracts
11a. View Contracts
| Feature | What to do | Expected result |
|---|---|---|
| View all contracts | Go to /agent/applications?tab=contracts |
List of contracts from managers with status, project, dates |
| Contract statuses | Check status badges | Draft, Sent, Pending Review, Active, Completed, Terminated, Declined |
| View details | Click a contract | Shows: title, type, project, dates, commission terms, content, timeline |
11b. Respond to Contracts
| Feature | What to do | Expected result |
|---|---|---|
| Accept contract | Click Accept on a sent contract | Status changes; you proceed to signing |
| Decline contract | Click Decline, enter reason | Status changes to Declined; manager notified |
| Upload signed doc | After accepting, upload signed document | Document attached to contract |
| View timeline | Check contract timeline | All status changes and actions logged with dates |
11c. Commission Terms
| What to look for | Expected display |
|---|---|
| Commission rate | Percentage or fixed amount shown per contract |
| Commission type | "Percentage of unit price" or "Fixed amount per unit" |
| Override notes | Any custom commission notes from manager |
12. Commissions
| Feature | What to do | Expected result |
|---|---|---|
| View dashboard | Go to /agent/commissions |
Summary cards: Total Earned, Pending, Paid, Average per transaction |
| View list | Scroll to commissions table | All commissions listed with pagination (20/page) |
| Filter by status | Filter: Pending, Approved, Paid, Receipt Confirmed, Rejected | List filters correctly |
| Sort | Sort by date, amount, status, project | Sorting works |
| Search | Search by project, unit, or reference | Results filter |
| View detail | Click a commission | Shows: project, unit, price, calculation, amount, payment date, method, status |
| Confirm receipt | On a "Paid" commission, click Confirm Receipt | Status changes to Receipt Confirmed |
Things to check:
-
Commission amounts match expected calculations (rate x unit price)
-
Pending commissions are awaiting manager approval
-
Payment proof/receipt visible when provided
13. Route Access / Permissions
| Route | Should you have access? |
|---|---|
/agent/dashboard |
Yes |
/agent/leads |
Yes |
/agent/commissions |
Yes |
/agent/applications |
Yes |
/projects |
Yes (browse published projects) |
/projects/:id |
Yes |
/profile |
Yes |
/manager/* |
No -- should redirect to /unauthorized |
/admin/* |
No -- should redirect to /unauthorized |
/owner/* |
No -- should redirect to /unauthorized |
14. Notifications
| Event | Expected notification |
|---|---|
| Access request approved | In-app + email notification |
| Access request rejected | In-app + email with rejection reason |
| Contract sent to you | Email notification with contract details |
| Contract activated | In-app notification |
| Contract terminated | In-app + email with reason |
| Commission approved | In-app notification |
| Commission paid | In-app notification |
Quick Checklist Summary
Use this to track your progress:
- Mobile Responsiveness
- Registration (email + Google SSO)
- Login / Logout
- Onboarding (profile + role selection as Agent)
- Dashboard loads with correct data
- Agent profile: fill all sections, completeness % updates
- Agent profile: publish / unpublish
- Document uploads: multiple types, expiry tracking
- KYC status reflects document state
- Browse available projects
- Submit project access request
- View my access requests + statuses
- Withdraw a pending request
- After approval: project appears in my active projects
- Create a lead with all fields
- View lead list with search/filter/pagination
- Change lead stages through pipeline
- Log activities on leads (calls, meetings, visits, etc.)
- Mark a lead as lost with reason
- Convert a lead to customer (unit selection + payment plan)
- View contracts list
- Accept/decline a contract
- Upload signed contract document
- View contract details and timeline
- View commission dashboard and summary
- Filter/sort/search commissions
- View commission detail
- Confirm commission receipt
- Route permissions: cannot access manager/admin/owner routes
- Notifications arrive for key events