1Business context
DeskFlow is a customer-support help desk. Customers raise tickets; agents triage a queue, respond within SLA targets set by priority, add internal notes and resolve tickets with a resolution category.
Customers raise tickets (priority set by category); agents work a queue with live SLA countdowns and breach states, bulk-assign, reply with canned responses and formatting, add internal notes, and resolve with a required reason.
2Users & roles
- 👤 Customer — raises tickets (no login)
- 👤 Support agent (agent@deskflow.dev / Desk@123) — works the queue
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Get help | /apps/helpdesk | Ticket form with category-derived priority |
| Agent login | /apps/helpdesk/agent | Agent sign-in |
| Agent queue | /apps/helpdesk/queue | Filters, search, bulk assign, live SLA timers |
| Ticket | /apps/helpdesk/t/[id] | Replies with formatting, canned responses, internal notes, status |
4Main end-to-end journey
Customer ticket to resolution
- Raise a Technical ticket as Grace Lee
- Log in as agent@deskflow.dev / Desk@123
- Open it, assign to me, send a greeting reply and an internal note
- Set status Resolved with a resolution
Expected: Ticket #1041 created; SLA stops at first reply; status goes Open → Pending → Resolved
5Business rules & validations
- Derived priorityBeginner
Choosing ticket-category shows which priority the ticket will get (Technical → High).
- Live SLA timersIntermediate
sla-<id> counts down each second; breached tickets have data-breached="true" and red text.
- Queue filtersBeginner
status-filter, priority-filter, owner-filter and queue-search combine; assert queue-count.
- Bulk assignIntermediate
select-all-tickets → bulk-assign-me updates every assignee-<id> cell.
- Toolbar formattingIntermediate
Select text in reply-text, click format-bold; the sent message renders <strong>.
- Internal notesIntermediate
internal-note switch → message has data-internal="true" and doesn't count as a first response.
- First responseAdvanced
Sending a public reply stops the SLA timer (“Responded”) and moves Open → Pending.
- Resolution ruleIntermediate
Setting ticket-status to Resolved without resolution-category shows ticket-error.
6Test data & credentials
- URL
- /apps/helpdesk
- Agent
- agent@deskflow.dev
- Password
- Desk@123
- SLA
- Urgent 30m · High 1h · Med 4h · Low 24h
7Glossary
- SLA
- First-response target: Urgent 30 min, High 1 h, Medium 4 h, Low 24 h
- Internal note
- Agent-only message not visible to the customer
- Resolution category
- Required to set a ticket to Resolved
8Watch-outs for automation
- ⚠️SLA timers count down every second
- ⚠️The first public reply stops the SLA and moves Open → Pending
- ⚠️Rich-text bold is applied to selected text
9Suggested test strategy
1 · Smoke
2
P1 positive and end-to-end cases — run on every build.
2 · Regression
15
All cases, incl. 3 negative and 2 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- DESKFLOW-01 — Raise and resolve a ticket
- DESKFLOW-E2E-01 — Customer ticket to resolution