1Business context
SalesPulse is a sales CRM. Reps capture leads, log activities, convert leads to deals and move deals through a pipeline to Won or Lost; dashboards track the win rate. Data quality (no duplicate leads) is a key rule.
A leads table with filters, select-all and bulk assign, a new-lead modal with duplicate checks, an activity log, convert-to-deal, and a Kanban pipeline you can drag cards across.
2Users & roles
- 👤 Sales rep (sales@crm.dev / Crm@123) — manages leads, activities and the pipeline
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Login | /apps/crm | Email/password sign-in |
| Dashboard | /apps/crm/dashboard | KPIs including won deals and win rate |
| Leads | /apps/crm/leads | Filters, select-all, bulk owner assignment, new lead |
| Lead detail | /apps/crm/leads/[id] | Activity log and convert to deal |
| Pipeline | /apps/crm/pipeline | Kanban stages with drag and drop or Move-to menu |
4Main end-to-end journey
Lead to won deal
- Log in as sales@crm.dev / Crm@123
- Create lead Grace Lee at Globex Corp (₹45,000, LinkedIn)
- Log an intro call
- Convert with value and 30-day close
- Move the deal through the pipeline to Won
- Open the dashboard
Expected: Lead shows Converted; the card moves between stages and the Won KPI and win rate update
5Business rules & validations
- Table filtersBeginner
Combine lead-search, lead-status-filter and lead-source-filter; assert lead-count and rows.
- Select all & bulk assignIntermediate
select-all-leads ticks every visible row; bulk-owner + apply-bulk updates owner-<id> cells.
- New lead validationIntermediate
save-lead with an existing email shows “already exists”; bad phone/value show error-*.
- Activity logIntermediate
Switch activity-note/call/email, save, and assert the newest activity-item text.
- Convert to dealAdvanced
convert-lead → deal-value + deal-close → lead-status becomes Converted and converted-banner appears.
- Kanban via menuIntermediate
Change move-deal-<company> and verify the card is inside stage-<id> and stage-total-* updates.
- Kanban drag & dropAdvanced
Drag a deal-card onto another stage-* column (HTML5 DnD — dispatch events in Selenium/Cypress).
- Dashboard KPIsBeginner
Winning a deal changes kpi-won and kpi-win-rate on the dashboard.
6Test data & credentials
- URL
- /apps/crm
- sales@crm.dev
- Password
- Crm@123
- Stages
- Qualified → Won/Lost
7Glossary
- Lead
- A potential customer — email must be unique
- Deal
- A converted lead with value and expected close date
- Stage
- Pipeline column, from Qualified to Won/Lost
8Watch-outs for automation
- ⚠️Kanban uses HTML5 drag and drop — Selenium/Cypress may need dispatched events; the Move-to menu is the reliable path
- ⚠️Select-all only selects currently visible rows
- ⚠️Newest leads appear first
9Suggested test strategy
1 · Smoke
2
P1 positive and end-to-end cases — run on every build.
2 · Regression
15
All cases, incl. 4 negative and 2 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- SALESPULSE-01 — Create a lead and convert it
- SALESPULSE-E2E-01 — Lead to won deal