Staging Test: Support Chat & Ticketing
Test Area: Support Tickets & Real-time ChatEstimated Time: 30-40 minutes
Difficulty: Medium
Prerequisites: Complete 01-authentication first.
Overview
This guide tests the support ticketing and real-time chat system. The system enables:- Investors to create support tickets and message with support staff
- Support Staff (Agent/Admin) to manage tickets, assign them, and add internal notes
- Super Admin to send one-way direct messages to users and reopen closed tickets
Ticket Status Flow
Ticket Categories
| Category | When to Use |
|---|---|
| DEPOSIT | Questions about deposits |
| WITHDRAWAL | Issues with withdrawals |
| KYC | Identity verification questions |
| TECHNICAL | Technical issues with the platform |
| EARLY_WITHDRAWAL | Requests to withdraw before lock-in ends |
| OTHER | Anything else |
Before You Start
URLs
Note: All support routes use/support/* (investor) and /admin/support/* (staff). The old /investor/tickets and /admin/tickets routes no longer exist.
| Page | URL | Notes |
|---|---|---|
| Login | https://zestamc.savibm.com/login | All users |
| Investor Pages | ||
| Support Hub | https://zestamc.savibm.com/support | Dashboard with tickets + inbox |
| My Tickets | https://zestamc.savibm.com/support/tickets | Investor’s ticket list |
| Ticket Detail | https://zestamc.savibm.com/support/tickets/:id | Chat view |
| Inbox | https://zestamc.savibm.com/support/inbox | Direct messages from admin |
| Note: | Ticket creation uses a modal dialog | Click “New Ticket” button on Support Hub or My Tickets page |
| Staff Pages | ||
| Support Dashboard | https://zestamc.savibm.com/admin/support | All tickets overview |
| All Tickets | https://zestamc.savibm.com/admin/support/tickets | Staff ticket queue |
| Ticket Detail | https://zestamc.savibm.com/admin/support/tickets/:id | Chat + notes + status |
| Agent Workload | https://zestamc.savibm.com/admin/support/agents | Super Admin only |
| Direct Messages | https://zestamc.savibm.com/admin/support/dm | Super Admin only |
Test Accounts
| Role | OTP | Purpose | |
|---|---|---|---|
| Investor | testinvestor@zestamc.com | Check email | Primary investor for ticket creation |
| Investor | test@zestamc.com | Check email | Secondary investor for DM testing |
| Support Agent | supportagent@zestamc.com | Check email | Agent for ticket management |
| Super Admin | admin@zestamc.com | Check email | Admin for DM and reopen testing |
User Capabilities
| Role | Can Do |
|---|---|
| INVESTOR | Create tickets, send messages, close own tickets, receive DMs |
| SUPPORT_AGENT | View all tickets, claim tickets, change status, add notes, send messages |
| SUPER_ADMIN | All agent actions + assign to others, send DMs, reopen closed tickets, view workload |
Navigation
| Role | How to Access Support |
|---|---|
| Investor | Click “Support” in sidebar navigation |
| Support Agent | Click “Support Center” in sidebar (shows under Admin layout) |
| Super Admin | Click “Support Center” in sidebar |
Test Cases
Test 1: Create Support Ticket
Goal: Verify investor can create a support ticket with initial message Steps:- Log in as
testinvestor@zestamc.com - Navigate to Support page (
/support) - Click the “New Ticket” button (opens a modal dialog)
- Fill in the form in the modal:
- Category:
DEPOSIT - Subject:
Question about my deposit - Message:
I submitted a deposit yesterday but it hasn't been approved yet. Can you help?
- Category:
- Click “Create Ticket” button in the modal
| Step | What You Should See |
|---|---|
| Modal opens | Category dropdown, subject field, message textarea in dialog |
| After submit | Success message, modal closes, redirected to ticket detail view |
| Ticket status | Shows “OPEN” |
| Initial message | Your message appears in the chat |
/support/tickets) by clicking the “New Ticket” button there.
Pass Criteria: ✅ Ticket created with initial message visible
Test 2: View Ticket List
Goal: Verify investor can see their support tickets Steps:- On the Support page
- Look for the ticket list/table
| Element | What You Should See |
|---|---|
| Ticket row | Shows subject, category, status, date |
| Status badge | Color-coded (e.g., green=open, blue=in progress) |
| Click action | Clicking ticket opens detail view |
Test 3: Send Message in Ticket
Goal: Verify investor can send messages in an open ticket Steps:- Open an existing ticket
- Type a message:
Adding more details to my question. - Click “Send” or press Enter
| Step | What You Should See |
|---|---|
| Message input | Text area at bottom of chat |
| After send | Message appears immediately |
| Sender info | Shows your name/avatar |
| Timestamp | Shows when message was sent |
Test 4: Close Ticket (Investor)
Goal: Verify investor can close their own ticket Steps:- Open an OPEN or IN_PROGRESS ticket
- Find “Close Ticket” button
- Click to close
- Confirm if prompted
| Step | What You Should See |
|---|---|
| Close button | Available on open tickets |
| After close | Status changes to “CLOSED” |
| Message input | Disabled (cannot message closed ticket) |
Test 5: Cannot Message Closed Ticket
Goal: Verify users cannot send messages in closed tickets Steps:- Open a CLOSED ticket
- Try to type and send a message
| Step | What You Should See |
|---|---|
| Message input | Disabled or hidden |
| Error | ”Cannot send messages to closed ticket” (if attempted) |
Test 6: Staff Views All Tickets
Goal: Verify support agent can see all tickets Steps:- Log out and log in as
supportagent@zestamc.com - You should be redirected to the admin portal (sidebar shows “Support Center”)
- Click “Support Center” in the sidebar
- Then navigate to Tickets tab or
/admin/support/tickets
| Element | What You Should See |
|---|---|
| Navigation | ”Support Center” link in sidebar |
| Ticket list | All tickets from all users |
| Filters | Status, category, priority filters |
| User info | Shows which user created each ticket |
| Assignment | Shows assigned agent (if any) |
Test 7: Claim/Assign Ticket
Goal: Verify agent can claim an unassigned ticket Steps:- As
supportagent@zestamc.com - Find an unassigned ticket (no agent assigned)
- Click “Claim” or “Assign to Me”
| Step | What You Should See |
|---|---|
| Before claim | Shows “Unassigned” |
| After claim | Shows your name as assigned agent |
| Status | May change to “IN_PROGRESS” |
| System message | ”Ticket assigned to [Agent Name]” in chat |
Test 8: Agent Limit (5 Active Tickets)
Goal: Verify agent cannot claim more than 5 active tickets Preparation: This test requires claiming 5 tickets first. If already at limit, proceed. Steps:- As an agent with 5 active tickets
- Try to claim a 6th ticket
| Step | What You Should See |
|---|---|
| Claim attempt | Error message |
| Error | ”Agent has reached maximum active tickets (5)“ |
| Ticket | Remains unassigned |
Test 9: Add Internal Note
Goal: Verify staff can add internal notes (not visible to users) Steps:- As
supportagent@zestamc.com - Open a ticket
- Find “Add Note” or “Internal Note” section
- Enter:
Customer has been contacted via phone. - Click “Add Note”
| Step | What You Should See |
|---|---|
| Note input | Separate from message input |
| After add | Note appears in notes section |
| Note styling | Visually distinct from chat messages |
| User view | Notes NOT visible when investor views ticket |
Test 10: Verify Notes Hidden from Investor
Goal: Confirm internal notes are not visible to the ticket owner Steps:- Log out and log in as
testinvestor@zestamc.com - Open the same ticket that has internal notes
- Look for the note content
| Step | What You Should See |
|---|---|
| Ticket view | Regular messages visible |
| Notes | No internal notes section visible |
| Note content | Cannot see staff notes |
Test 11: Staff Changes Status
Goal: Verify staff can update ticket status Steps:- Log in as
supportagent@zestamc.com - Open an OPEN ticket
- Change status to “IN_PROGRESS”
- Then change to “RESOLVED”
| Transition | Expected Result |
|---|---|
| OPEN → IN_PROGRESS | ✅ Allowed |
| IN_PROGRESS → RESOLVED | ✅ Allowed |
| RESOLVED → CLOSED | ✅ Allowed |
| Status display | Updates immediately |
Test 12: Staff Sends Message
Goal: Verify staff can send messages to investors Steps:- As
supportagent@zestamc.com - Open a ticket
- Send message:
Thank you for contacting support. We are looking into your issue.
| Step | What You Should See |
|---|---|
| After send | Message appears in chat |
| Sender | Shows agent name |
| Investor view | Investor can see staff message |
Test 13: Super Admin Sends Direct Message
Goal: Verify Super Admin can send one-way direct messages to users Steps:- Log in as
admin@zestamc.com - Navigate to Support Center > Direct Messages (or
/admin/support/dm) - Select recipient:
test@zestamc.com - Enter message:
Important: Please update your KYC documents. - Click Send
| Step | What You Should See |
|---|---|
| Navigation | ”Direct Messages” tab available in Support Center |
| DM form | Recipient dropdown/search, message textarea |
| After send | Success message, DM appears in sent list |
Test 14: Investor Receives Direct Message
Goal: Verify investor can receive and view direct messages Steps:- Log in as
test@zestamc.com - Navigate to Support > Inbox (or
/support/inbox) - Look for the DM from admin
| Step | What You Should See |
|---|---|
| Notification | Badge showing unread DM count in navigation |
| Inbox | DM from admin visible in list |
| Message | Shows sender name and content |
| Reply | No reply option (one-way DM) |
Test 15: Mark Messages Read
Goal: Verify read status updates when viewing messages Steps:- As
test@zestamc.comwith unread DMs - Open and view the DM
- Check if unread count updates
| Step | What You Should See |
|---|---|
| Before view | Unread badge/count |
| After view | Badge cleared or count decremented |
| DM appearance | May show as “read” |
Test 16: Reopen Closed Ticket (Super Admin Only)
Goal: Verify Super Admin can reopen a closed ticket Steps:- Log in as
admin@zestamc.com - Find a CLOSED ticket
- Click “Reopen” button
| Step | What You Should See |
|---|---|
| Reopen button | Only visible to Super Admin |
| After reopen | Status changes to OPEN |
| System message | ”Ticket reopened by [Admin Name]“ |
| Messaging | Can now send messages again |
Test 17: Agent Cannot Reopen Ticket
Goal: Verify regular support agent cannot reopen closed tickets Steps:- Log in as
supportagent@zestamc.com - Find a CLOSED ticket
- Look for reopen option
| Step | What You Should See |
|---|---|
| Reopen button | Not visible or disabled |
| Status | Cannot change from CLOSED |
Test 18: Agent Workload View (Super Admin)
Goal: Verify Super Admin can see agent workload Steps:- Log in as
admin@zestamc.com - Navigate to Support Center > Agents (or
/admin/support/agents) - View agent ticket counts
| Element | What You Should See |
|---|---|
| Agent list | All support staff listed |
| Ticket count | Number of active tickets per agent |
| Limit indicator | Shows X/5 format |
| Availability | Agents at limit marked differently |
Test 19: Real-time Message Updates
Goal: Verify messages appear in real-time without refresh Preparation: Open same ticket in two browser windows (one as investor, one as agent) Steps:- Window 1: Log in as
testinvestor@zestamc.com, open a ticket - Window 2: Log in as
supportagent@zestamc.com, open same ticket - In Window 2, send a message
- Observe Window 1
| Step | What You Should See |
|---|---|
| Window 1 | Message appears without refresh |
| Delay | Near-instant (< 2 seconds) |
| UI | Message animates/slides in |
Test 20: Ticket with Transaction Link
Goal: Verify tickets can be linked to deposit/withdrawal transactions Steps:- Log in as
testinvestor@zestamc.com - Create a new ticket (click “New Ticket” button, opens modal)
- Select category: DEPOSIT or WITHDRAWAL
- Submit ticket
- After ticket is created, check if a transaction is automatically linked (staff may also link transactions manually)
| Step | What You Should See |
|---|---|
| Ticket detail view | If transaction is linked, shows linked transaction card |
| Linked transaction | Displays transaction amount, status, and network |
| Staff view | Staff can see transaction details in ticket sidebar |
Test Results Summary
| Test | Status | Notes |
|---|---|---|
| Test 1: Create Ticket | ⬜ Pass / ⬜ Fail | |
| Test 2: View Ticket List | ⬜ Pass / ⬜ Fail | |
| Test 3: Send Message | ⬜ Pass / ⬜ Fail | |
| Test 4: Close Ticket | ⬜ Pass / ⬜ Fail | |
| Test 5: Cannot Message Closed | ⬜ Pass / ⬜ Fail | |
| Test 6: Staff Views All | ⬜ Pass / ⬜ Fail | |
| Test 7: Claim Ticket | ⬜ Pass / ⬜ Fail | |
| Test 8: Agent Limit | ⬜ Pass / ⬜ Fail | |
| Test 9: Add Internal Note | ⬜ Pass / ⬜ Fail | |
| Test 10: Notes Hidden | ⬜ Pass / ⬜ Fail | |
| Test 11: Staff Status Change | ⬜ Pass / ⬜ Fail | |
| Test 12: Staff Message | ⬜ Pass / ⬜ Fail | |
| Test 13: Send DM | ⬜ Pass / ⬜ Fail | |
| Test 14: Receive DM | ⬜ Pass / ⬜ Fail | |
| Test 15: Mark Read | ⬜ Pass / ⬜ Fail | |
| Test 16: Reopen (Admin) | ⬜ Pass / ⬜ Fail | |
| Test 17: Agent Cannot Reopen | ⬜ Pass / ⬜ Fail | |
| Test 18: Workload View | ⬜ Pass / ⬜ Fail | |
| Test 19: Real-time Updates | ⬜ Pass / ⬜ Fail | |
| Test 20: Transaction Link | ⬜ Pass / ⬜ Fail |
Status Transition Reference
| From | Allowed To | Who Can |
|---|---|---|
| OPEN | IN_PROGRESS, CLOSED | Staff (status), Anyone (close) |
| IN_PROGRESS | OPEN, RESOLVED, CLOSED | Staff only |
| RESOLVED | IN_PROGRESS, CLOSED | Staff only |
| CLOSED | OPEN | Super Admin only (reopen) |
Troubleshooting
”Access Denied” when accessing /admin/support
- Verify the support agent user has the
SUPPORT_AGENTrole inuser_rolestable - Check the staging seed was run correctly (
seed-staging.sql) - Clear browser cache and re-login
- Verify you’re logging in with the correct email (
supportagent@zestamc.com)
“Cannot send message” error
- Check if ticket is closed - closed tickets cannot receive messages
- Verify you have access to the ticket
- Try refreshing the page
”Agent limit reached” error
Agent already has 5 active (non-closed) tickets. To resolve:- Close or resolve some existing tickets
- Or reassign to a different agent
Messages not appearing in real-time
- Check your internet connection
- Try refreshing the page
- Real-time may take 1-2 seconds
- Check browser console for WebSocket errors
Cannot see internal notes
Internal notes are only visible to support staff, not to the ticket owner. This is expected behavior.Cannot find “Reopen” button
Reopen is only available for Super Admin users. Regular support agents cannot reopen closed tickets.DM not received
- Check the recipient email is correct
- Verify you’re logged in as Super Admin when sending
- Check investor’s inbox/notification area
Rate Limits
The support system has rate limits to prevent abuse:| Action | Limit | Window |
|---|---|---|
| Create ticket | 5 | Per hour |
| Send message | 30 | Per minute |
| Send DM | 60 | Per minute |
| Mark read | 100 | Per minute |
Next Steps
After completing support chat testing:- Review any failed tests and report issues
- If all tests pass, the support chat feature is ready for production
Related Documentation
- Support Chat PRD - Full product requirements
- Authentication - Login testing