ATUM SaaS - Comprehensive QA Test Document
**Document Version:** 2.0
**Last Updated:** 2026-03-06
**Platform:** ATUM SaaS - AI Workforce Platform
**Total Test Cases:** 400+
---
Test Case Legend
| Column | Description |
|---|---|
| **Test ID** | Unique test case identifier |
| **Feature** | Feature or component being tested |
| **Test Case** | Description of what is being tested |
| **Test Steps** | Step-by-step instructions to execute the test |
| **Expected Result** | Expected outcome if test passes |
| **Priority** | P0 (Critical), P1 (High), P2 (Medium), P3 (Low) |
| **Type** | Functional, Integration, E2E, Security, Performance |
---
Table of Contents
- Authentication & Authorization
- Agent Management
- Multi-Tenancy
- Canvas System
- Brain Systems
- Integrations
- Sales Hub - COMPREHENSIVE
- Command Centers
- Security & Governance
- Package Management
- Billing & Pricing
- Admin & Monitoring
- Dashboard & Analytics
- Marketplace
- Settings & Configuration
---
1. Authentication & Authorization
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| AUTH-001 | User Signup | Verify new user can sign up with valid credentials | 1. Navigate to /auth/signup<br>2. Enter valid email, password, and confirm password<br>3. Click "Sign Up"<br>4. Check email for verification link | User account created, verification email sent, redirect to verification page | P0 | Functional |
| AUTH-002 | User Signup | Verify password validation during signup | 1. Navigate to /auth/signup<br>2. Enter email with weak password (less than 8 chars)<br>3. Click "Sign Up" | Error message displayed: "Password must be at least 8 characters" | P0 | Functional |
| AUTH-003 | User Signup | Verify email uniqueness validation | 1. Navigate to /auth/signup<br>2. Enter already registered email<br>3. Click "Sign Up" | Error message: "Email already registered" | P1 | Functional |
| AUTH-004 | User Login | Verify user can login with valid credentials | 1. Navigate to /auth/signin<br>2. Enter registered email and password<br>3. Click "Sign In" | User redirected to dashboard, session established | P0 | Functional |
| AUTH-005 | User Login | Verify login fails with invalid credentials | 1. Navigate to /auth/signin<br>2. Enter invalid email/password<br>3. Click "Sign In" | Error message: "Invalid credentials" | P1 | Functional |
| AUTH-006 | Email Verification | Verify email verification link works | 1. Click verification link from email<br>2. Wait for redirect | Email verified, user redirected to dashboard with success message | P0 | Functional |
| AUTH-007 | Password Reset | Verify password reset request | 1. Navigate to /auth/signin<br>2. Click "Forgot Password"<br>3. Enter registered email<br>4. Click "Send Reset Link" | Password reset email sent, confirmation message displayed | P1 | Functional |
| AUTH-008 | 2FA Setup | Verify 2FA can be enabled | 1. Navigate to /settings/security<br>2. Click "Enable 2FA"<br>3. Scan QR code with authenticator app<br>4. Enter verification code | 2FA enabled successfully, backup codes provided | P1 | Security |
| AUTH-009 | 2FA Login | Verify login requires 2FA code when enabled | 1. Login with email/password<br>2. Enter 2FA code from authenticator | Access granted after valid 2FA code | P1 | Security |
| AUTH-010 | SSO Login | Verify SSO login with Google OAuth | 1. Navigate to /auth/sso<br>2. Click "Sign in with Google"<br>3. Authorize with Google account | User logged in, account created/linked | P1 | Integration |
| AUTH-011 | SSO Login | Verify SSO login with Microsoft OAuth | 1. Navigate to /auth/sso<br>2. Click "Sign in with Microsoft"<br>3. Authorize with Microsoft account | User logged in, account created/linked | P1 | Integration |
| AUTH-012 | Session Management | Verify session persists across page refreshes | 1. Login to application<br>2. Refresh page | User remains logged in, session data preserved | P1 | Functional |
| AUTH-013 | Session Expiry | Verify session expires after inactivity | 1. Login to application<br>2. Wait for session timeout (30 min)<br>3. Perform any action | Redirected to login page with "Session expired" message | P1 | Security |
| AUTH-014 | Logout | Verify user can logout successfully | 1. Click logout button<br>2. Confirm logout | Session cleared, redirected to login page | P0 | Functional |
| AUTH-015 | Admin Key Bypass | Verify admin key bypasses auth for testing | 1. Add X-Admin-Key header to request<br>2. Call protected endpoint | Access granted without standard auth | P1 | Security |
---
2. Agent Management
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| AGENT-001 | Agent Creation | Verify new agent can be created | 1. Navigate to /agents/new<br>2. Enter agent name, role, description<br>3. Select maturity level<br>4. Click "Create Agent" | Agent created, added to agent list | P0 | Functional |
| AGENT-002 | Agent Creation | Verify agent name uniqueness in Agent Studio | 1. Navigate to /agents/studio<br>2. Click "Create New Agent"<br>3. Enter the name of an existing agent in the Name field<br>4. Click "Save Agent" | Error toast shown and duplicate agent is not created | P1 | Functional |
| AGENT-003 | Agent Creation | Verify all maturity levels available | 1. Navigate to /agents/new<br>2. Check maturity level dropdown | Options: Student, Intern, Supervised, Autonomous | P1 | Functional |
| AGENT-004 | Agent Editing | Verify agent details can be edited | 1. Navigate to /agents<br>2. Click edit on existing agent<br>3. Update name, role, or description<br>4. Save changes | Changes saved and reflected in agent details | P1 | Functional |
| AGENT-005 | Agent Deletion | Verify Agent Studio does not expose direct deletion controls | 1. Navigate to /agents/studio<br>2. Review each agent card and open the Configure dialog for an existing agent<br>3. Confirm there is no delete button or delete confirmation flow on this screen | No direct delete action is available in Agent Studio; deletion must be handled outside this page | P1 | Functional |
| AGENT-006 | Agent Execution | Verify student agent can perform read-only tasks | 1. Create agent with Student maturity<br>2. Assign search task<br>3. Execute task | Task completes with search results | P0 | Functional |
| AGENT-007 | Agent Execution | Verify student agent blocked from write operations | 1. Create agent with Student maturity<br>2. Assign task requiring data modification<br>3. Execute task | Error: "Insufficient permissions for this operation" | P0 | Security |
| AGENT-008 | Agent Execution | Verify intern agent requires approval for actions | 1. Create agent with Intern maturity<br>2. Assign action task<br>3. Execute task | Proposal created, approval required | P0 | Functional |
| AGENT-009 | Agent Execution | Verify supervised agent queues when unavailable | 1. Create agent with Supervised maturity<br>2. Set user availability to offline<br>3. Assign task | Task queued, notification sent when user available | P0 | Functional |
| AGENT-010 | Agent Execution | Verify autonomous agent can execute independently | 1. Create agent with Autonomous maturity<br>2. Assign complex task<br>3. Execute task | Task completes without human intervention | P0 | Functional |
| AGENT-011 | Agent Limits | Verify free tier limited to 3 agents | 1. Create 3 agents on free tier<br>2. Attempt to create 4th agent | Error: "Agent limit reached. Upgrade to create more agents." | P1 | Functional |
| AGENT-012 | Agent Limits | Verify solo tier allows 10 agents | 1. Upgrade to Solo tier<br>2. Create up to 10 agents | All 10 agents created successfully | P1 | Functional |
| AGENT-013 | Agent History | Verify agent execution history is tracked from the Agents dashboard | 1. Navigate to /agents<br>2. Run an agent from the card grid<br>3. Click the same agent's "Logs & Audit" action<br>4. Review the execution history modal | A history entry is shown for the run with status and timestamp, and the trace can be opened from the modal | P1 | Functional |
| AGENT-014 | Agent Terminal | Verify live agent terminal works | 1. Navigate to agent studio<br>2. Open agent terminal<br>3. Execute task | Real-time task output displayed in terminal | P1 | Functional |
| AGENT-015 | Agent Feedback | Verify feedback can be submitted for agent actions | 1. Execute agent task<br>2. Click "Provide Feedback"<br>3. Submit rating and comments | Feedback recorded, agent learning updated | P1 | Functional |
| AGENT-016 | Agent Governance | Verify governance rules enforced | 1. Create governance rule restricting action type<br>2. Attempt restricted action with agent | Action blocked by governance | P1 | Security |
| AGENT-017 | Agent Coordination | Verify multiple agents can coordinate | 1. Create 3 agents with different roles<br>2. Assign coordinated task<br>3. Execute | Agents collaborate, task completes | P1 | Functional |
| AGENT-018 | Agent Status | Verify agent status updates in real-time | 1. Monitor agent status widget<br>2. Execute long-running task<br>3. Check status updates | Status changes: Idle → Running → Completed | P1 | Functional |
---
3. Multi-Tenancy
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| MT-001 | Tenant Isolation | Verify tenants cannot access each other's data | 1. Login as tenant A user<br>2. Note tenant ID in URL<br>3. Attempt to access tenant B data via API | 403 Forbidden or 404 Not Found | P0 | Security |
| MT-002 | Tenant Isolation | Verify agents filtered by tenant_id | 1. Create agents in two different tenants<br>2. Query agents API | Each tenant only sees their own agents | P0 | Security |
| MT-003 | Subdomain Routing | Verify subdomain routing works correctly | 1. Navigate to tenant-a.atom-saas.fly.dev<br>2. Check tenant context | Correct tenant loaded from subdomain | P0 | Functional |
| MT-004 | RLS | Verify Row-Level Security enforced at DB level | 1. Direct database query with tenant A credentials<br>2. Query tenant B tables | Empty result set, RLS policy blocks access | P0 | Security |
| MT-005 | S3 Isolation | Verify S3 paths are tenant-specific | 1. Upload file for tenant A<br>2. Check S3 path | File stored in s3://atom-saas/{tenant_id}/ path | P0 | Security |
| MT-006 | Redis Isolation | Verify Redis keys are tenant-scoped | 1. Set Redis key for tenant A<br>2. Attempt to read from tenant B context | Key not found, proper namespacing (tenant:{id}:key) | P0 | Security |
| MT-007 | Tenant Creation | Verify new tenant can be created | 1. Submit tenant creation request<br>2. Set subdomain, admin email | Tenant created, unique subdomain assigned | P0 | Functional |
| MT-008 | Tenant Invitation | Verify users can be invited to tenant | 1. Navigate to tenant/invite<br>2. Enter user email<br>3. Select role<br>4. Send invitation | Invitation email sent, user added to tenant | P1 | Functional |
| MT-009 | Tenant Deletion | Verify tenant data is isolated on deletion | 1. Delete tenant A<br>2. Verify tenant B data intact | Only tenant A data removed, tenant B unaffected | P1 | Functional |
| MT-010 | Tenant Switching | Verify user can switch between tenants | 1. User belongs to multiple tenants<br>2. Use tenant switcher<br>3. Select different tenant | Context switches to new tenant, data updates | P1 | Functional |
---
4. Canvas System
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CV-001 | Canvas Browser | Verify browser canvas can navigate websites | 1. Navigate to /canvas/browser/{id}<br>2. Enter URL in address bar<br>3. Click "Go" | Website loads in canvas iframe | P0 | Functional |
| CV-002 | Canvas Browser | Verify browser canvas captures DOM | 1. Load webpage in browser canvas<br>2. Click "Capture DOM"<br>3. Check captured data | Page DOM structure captured and stored | P1 | Functional |
| CV-003 | Canvas Coding | Verify code execution canvas works | 1. Navigate to /canvas/coding/{id}<br>2. Write Python code<br>3. Click "Execute" | Code executes, output displayed | P0 | Functional |
| CV-004 | Canvas Coding | Verify code execution is isolated | 1. Execute code accessing filesystem<br>2. Check result | Access denied or isolated environment | P1 | Security |
| CV-005 | Canvas Email | Verify email canvas can read emails | 1. Navigate to /canvas/email/{id}<br>2. Connect email account<br>3. Load emails | Email list displayed in canvas | P1 | Functional |
| CV-006 | Canvas Email | Verify email canvas can compose emails | 1. Open email canvas<br>2. Click "Compose"<br>3. Enter recipient, subject, body<br>4. Click "Send" | Email sent successfully | P1 | Functional |
| CV-007 | Canvas Spreadsheet | Verify spreadsheet canvas can load CSV | 1. Navigate to /canvas/spreadsheet/{id}<br>2. Upload CSV file<br>3. Click "Load" | Data displayed in spreadsheet format | P1 | Functional |
| CV-008 | Canvas Spreadsheet | Verify spreadsheet can execute formulas | 1. Load data in spreadsheet canvas<br>2. Add formula cell (e.g., =SUM(A1:A10))<br>3. Check result | Formula calculated correctly | P1 | Functional |
| CV-009 | Canvas Terminal | Verify terminal canvas can execute commands | 1. Navigate to /canvas/terminal/{id}<br>2. Enter shell command<br>3. Press Enter | Command executes, output displayed | P1 | Functional |
| CV-010 | Canvas Terminal | Verify terminal is rate-limited | 1. Execute multiple commands rapidly<br>2. Check rate limit | Rate limit enforced after threshold | P1 | Security |
| CV-011 | Canvas Persistence | Verify canvas state is saved | 1. Open canvas, make changes<br>2. Close canvas<br>3. Reopen canvas | Changes restored from previous state | P1 | Functional |
| CV-012 | Canvas Sharing | Verify canvas can be shared with users | 1. Open canvas<br>2. Click "Share"<br>3. Add user email<br>4. Set permissions | User granted access to canvas | P1 | Functional |
| CV-013 | Canvas Audit | Verify canvas actions are audited | 1. Perform action in canvas<br>2. Check audit logs | Action logged with timestamp, user, canvas ID | P1 | Security |
| CV-014 | Canvas Integration | Verify canvas can integrate with skills | 1. Open canvas<br>2. Browse skill marketplace<br>3. Install skill<br>4. Use skill in canvas | Skill functionality available in canvas | P1 | Integration |
---
5. Brain Systems
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| BR-001 | Cognitive Architecture | Verify cognitive architecture initializes agent | 1. Create new agent<br>2. Call cognitive architecture initialize<br>3. Check agent state | Agent initialized with reasoning, memory, attention | P0 | Functional |
| BR-002 | Cognitive Architecture | Verify reasoning process generates decisions | 1. Initialize agent with cognitive architecture<br>2. Submit task<br>3. Call reasoning function | Decision returned with rationale | P1 | Functional |
| BR-003 | World Model | Verify experiences are recorded | 1. Execute agent task<br>2. Check world model storage | Experience stored with agent_id, task_type, outcome | P0 | Functional |
| BR-004 | World Model | Verify semantic search retrieves relevant experiences | 1. Record multiple experiences<br>2. Search by task description<br>3. Check results | Relevant experiences returned ranked by similarity | P1 | Functional |
| BR-005 | World Model | Verify world model respects tenant isolation | 1. Record experience for tenant A<br>2. Search from tenant B | No results returned, proper isolation | P0 | Security |
| BR-006 | Learning Engine | Verify patterns are learned from experiences | 1. Record multiple similar experiences<br>2. Generate adaptations<br>3. Check learned patterns | Patterns identified and adaptations suggested | P1 | Functional |
| BR-007 | Learning Engine | Verify RLHF improves agent performance | 1. Submit feedback on agent actions<br>2. Execute similar task<br>3. Check performance | Performance improves based on feedback | P1 | Functional |
| BR-008 | Reasoning Engine | Verify proactive interventions triggered | 1. Set reasoning rule for opportunity<br>2. Trigger condition<br>3. Check interventions | Intervention generated with URGENT/OPPORTUNITY/AUTOMATION type | P1 | Functional |
| BR-009 | Cross-System Reasoning | Verify data correlation across integrations | 1. Connect Salesforce and Slack integrations<br>2. Trigger cross-system reasoning<br>3. Check correlations | Correlated insights from both systems | P2 | Functional |
| BR-010 | Episodic Memory | Verify episodes capture context | 1. Execute agent task<br>2. Check episode record | Episode stored with task, context, outcome | P0 | Functional |
| BR-011 | Graduation System | Verify readiness score calculated correctly | 1. Execute agent tasks<br>2. Check readiness score | Score = zero_intervention_ratio*0.4 + constitutional_score*0.3 + confidence_score*0.2 + success_rate*0.1 | P0 | Functional |
| BR-012 | Graduation System | Verify student promotes to intern at 70% | 1. Achieve 70% readiness with student agent<br>2. Check maturity level | Agent promoted to intern | P0 | Functional |
| BR-013 | Graduation System | Verify intern promotes to supervised at 80% | 1. Achieve 80% readiness with intern agent<br>2. Check maturity level | Agent promoted to supervised | P0 | Functional |
| BR-014 | Graduation System | Verify supervised promotes to autonomous at 95% | 1. Achieve 95% readiness with supervised agent<br>2. Check maturity level | Agent promoted to autonomous | P0 | Functional |
| BR-015 | Episode Feedback | Verify feedback can be submitted for episodes | 1. Navigate to episode<br>2. Submit rating (0-1) and comments<br>3. Check feedback record | Feedback stored, used for RLHF | P1 | Functional |
---
6. Integrations
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| INT-001 | OAuth Flow | Verify OAuth authorization flow | 1. Navigate to integrations<br>2. Click "Connect" on any integration<br>3. Authorize on provider site<br>4. Wait for redirect | Integration connected, OAuth token stored | P0 | Integration |
| INT-002 | OAuth Flow | Verify OAuth token is refreshed | 1. Connect OAuth integration<br>2. Wait for token to approach expiry<br>3. Make API call | Token refreshed automatically, call succeeds | P1 | Integration |
| INT-003 | OAuth Flow | Verify OAuth can be disconnected | 1. Navigate to integrations<br>2. Click "Disconnect" on connected integration | Integration disconnected, tokens removed | P1 | Functional |
| INT-004 | Salesforce | Verify Salesforce can fetch contacts | 1. Connect Salesforce integration<br>2. Click "Fetch Contacts"<br>3. Check results | Contacts displayed from Salesforce | P1 | Integration |
| INT-005 | Salesforce | Verify Salesforce can create lead | 1. Connect Salesforce integration<br>2. Submit new lead data<br>3. Verify in Salesforce | Lead created in Salesforce | P1 | Integration |
| INT-006 | Slack | Verify Slack can send message | 1. Connect Slack integration<br>2. Compose message<br>3. Select channel<br>4. Send | Message posted to Slack channel | P1 | Integration |
| INT-007 | Slack | Verify Slack can read messages | 1. Connect Slack integration<br>2. Select channel<br>3. Click "Fetch Messages" | Recent messages displayed | P1 | Integration |
| INT-008 | Google Drive | Verify Google Drive can list live files | 1. Connect Google Drive from the integrations page<br>2. Confirm OAuth returns to /integrations?success=google_drive<br>3. Open the live authenticated Google Drive files endpoint<br>4. Verify the response contains connected: true and file objects with id, name, and mimeType | Live Google Drive files are returned only for the authenticated tenant; empty state is shown cleanly when Drive has no files | P1 | Integration |
| INT-009 | Google Drive | Verify Google Drive handles expired or invalid tokens gracefully | 1. Connect Google Drive successfully<br>2. Revoke the Google Drive grant in Google account settings or invalidate the saved token<br>3. Open the live authenticated Google Drive files endpoint again<br>4. Verify the response does not return stale file data and instead requests reconnect/re-authentication | API returns a safe failure state such as connected: false or a reconnect message; no silent success with invalid credentials | P1 | Integration |
| INT-010 | HubSpot | Verify HubSpot can fetch deals | 1. Connect HubSpot integration<br>2. Navigate to deals<br>3. Click "Sync" | Deals imported from HubSpot | P1 | Integration |
| INT-011 | GitHub | Verify GitHub can fetch repositories | 1. Connect GitHub integration<br>2. Navigate to repos<br>3. Click "Load Repos" | Repositories listed from GitHub | P2 | Integration |
| INT-012 | Webhooks | Verify webhooks receive external events | 1. Configure webhook URL<br>2. Trigger event from external system<br>3. Check webhook log | Event received and logged | P1 | Integration |
| INT-013 | Integration Hub | Verify all 39+ integrations listed | 1. Navigate to /integrations<br>2. Check integration count | All available integrations displayed | P2 | Functional |
| INT-014 | Integration Health | Verify integration health status displayed | 1. Navigate to integrations<br>2. Check connection status | Status shows: Connected/Disconnected/Error | P1 | Functional |
---
7. Sales Hub - COMPREHENSIVE
7.1 Dashboard & Metrics
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-001 | Dashboard | Verify dashboard loads with all metrics | 1. Navigate to /dashboard/sales<br>2. Check all metric cards | All cards display: Pipeline Value, Active Deals, Win Rate, Weighted Forecast | P0 | Functional |
| SALES-002 | Dashboard Stats API | Verify GET /api/sales/dashboard/stats returns data | 1. GET /api/sales/dashboard/stats<br>2. Check response structure | Returns: total_leads, conversion_rate, active_deals_count, pipeline_value, weighted_forecast, high_risk_deals_count, win_rate, key_contacts, deals_by_stage | P0 | Functional |
| SALES-003 | Dashboard Stats API | Verify stats API requires workspace_id and tenant_id | 1. GET /api/sales/dashboard/stats without params<br>2. Check response | 400 Bad Request or 401 Unauthorized | P0 | Security |
| SALES-004 | Pipeline Value | Verify pipeline value calculation | 1. Create deals with various values<br>2. Check pipeline value metric | Pipeline value = sum of all open deal values | P1 | Functional |
| SALES-005 | Active Deals | Verify active deals count | 1. Create deals in different stages<br>2. Check active deals metric | Only open deals counted (excludes CLOSED_WON, CLOSED_LOST) | P1 | Functional |
| SALES-006 | Win Rate | Verify win rate calculation | 1. Create won and lost deals<br>2. Check win rate metric | Win rate = won_deals / (won_deals + lost_deals) | P1 | Functional |
| SALES-007 | Weighted Forecast | Verify weighted forecast calculation | 1. Create deals with different probabilities<br>2. Check weighted forecast | Weighted forecast = sum(deal_value * probability/100) | P1 | Functional |
| SALES-008 | High Risk Deals | Verify high-risk deals detection | 1. Create deals with health_score < 40<br>2. Check high_risk_deals_count | Count matches deals with critical health | P1 | Functional |
| SALES-009 | Deals by Stage | Verify deals grouped by stage | 1. Create deals across all stages<br>2. Check deals_by_stage breakdown | Deals correctly grouped: DISCOVERY, QUALIFICATION, PROPOSAL, NEGOTIATION | P1 | Functional |
| SALES-010 | Real-time Updates | Verify dashboard updates in real-time | 1. Open dashboard<br>2. Create new deal via API<br>3. Wait 5 seconds<br>4. Check dashboard | Dashboard metrics reflect new deal | P1 | Functional |
7.2 Lead Management
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-011 | Lead Ingestion | Verify POST /api/sales/leads/ingest creates lead | 1. POST /api/sales/leads/ingest with valid data<br>2. Check response | Lead created with lead_id and ai_score | P0 | Functional |
| SALES-012 | Lead Ingestion | Verify lead ingestion requires valid email | 1. POST with invalid email format<br>2. Check response | 400 Bad Request with validation error | P0 | Functional |
| SALES-013 | Lead Ingestion | Verify duplicate lead detection | 1. POST lead with existing email<br>2. Check response | Lead skipped or updated, not duplicated | P1 | Functional |
| SALES-014 | Lead Ingestion | Verify spam detection works | 1. POST lead with competitor domain<br>2. Check lead status | Lead marked as SPAM, ai_score = 0 | P1 | Functional |
| SALES-015 | Lead Ingestion | Verify disposable email detection | 1. POST lead with disposable email<br>2. Check response | Lead rejected or marked as SPAM | P1 | Security |
| SALES-016 | AI Lead Scoring | Verify high-intent lead scored 80-100 | 1. POST lead with strong buying signals<br>2. Check ai_score | Score between 80-100, status: QUALIFIED | P0 | Functional |
| SALES-017 | AI Lead Scoring | Verify medium-intent lead scored 50-80 | 1. POST lead with moderate interest<br>2. Check ai_score | Score between 50-80, status: NEW or CONTACTED | P1 | Functional |
| SALES-018 | AI Lead Scoring | Verify low-intent lead scored <50 | 1. POST lead with weak signals<br>2. Check ai_score | Score < 50, status: NEW | P1 | Functional |
| SALES-019 | Lead Listing | Verify GET /api/sales/leads returns all leads | 1. GET /api/sales/leads<br>2. Check response | Array of leads ordered by ai_score desc | P0 | Functional |
| SALES-020 | Lead Listing | Verify leads filtered by tenant | 1. GET leads for tenant A<br>2. GET leads for tenant B | Each tenant sees only their leads | P0 | Security |
| SALES-021 | Lead Details | Verify lead conversion to deal | 1. POST /api/sales/leads/{id}/convert<br>2. Check deal creation | Deal created, lead marked as is_converted | P1 | Functional |
| SALES-022 | Lead Status Update | Verify lead status can be updated | 1. PATCH /api/sales/leads/{id}<br>2. Update status to CONTACTED | Status updated, timestamp updated | P1 | Functional |
| SALES-023 | Lead Deletion | Verify lead can be deleted | 1. DELETE /api/sales/leads/{id}<br>2. Check database | Lead removed or marked as deleted | P1 | Functional |
7.3 Deal Management
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-024 | Deal Creation | Verify deal can be created | 1. POST /api/sales/deals with valid data<br>2. Check response | Deal created with deal_id | P0 | Functional |
| SALES-025 | Deal Creation | Verify deal requires required fields | 1. POST deal without name or value<br>2. Check response | 400 Bad Request with validation error | P0 | Functional |
| SALES-026 | Deal Stages | Verify all deal stages available | 1. Check deal stage enum/options | DISCOVERY, QUALIFICATION, PROPOSAL, NEGOTIATION, CLOSED_WON, CLOSED_LOST | P1 | Functional |
| SALES-027 | Deal Probability | Verify default probability by stage | 1. Create deal in DISCOVERY (no probability)<br>2. Check assigned probability | DISCOVERY: 20%, QUALIFICATION: 40%, PROPOSAL: 60%, NEGOTIATION: 80% | P1 | Functional |
| SALES-028 | Deal Listing | Verify GET /api/sales/deals returns all deals | 1. GET /api/sales/deals<br>2. Check response | Array of all deals for tenant | P0 | Functional |
| SALES-029 | Deal Listing | Verify pipeline endpoint returns open deals | 1. GET /api/sales/pipeline<br>2. Check response | Only open deals (excludes CLOSED_WON, CLOSED_LOST) | P0 | Functional |
| SALES-030 | Deal Details | Verify GET /api/sales/deals/{id} returns details | 1. GET specific deal<br>2. Check response | Full deal details with all fields | P1 | Functional |
| SALES-031 | Deal Update | Verify deal can be updated | 1. PATCH /api/sales/deals/{id}<br>2. Update value or stage | Changes saved, updated_at timestamp | P1 | Functional |
| SALES-032 | Deal Stage Change | Verify stage change logged as activity | 1. Update deal stage<br>2. Check activities | Stage change activity logged with description | P1 | Functional |
| SALES-033 | Deal Deletion | Verify deal can be deleted | 1. DELETE /api/sales/deals/{id}<br>2. Try to fetch deal | 404 Not Found | P1 | Functional |
7.4 Deal Health & Risk
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-034 | Deal Health | Verify GET /api/sales/deals/{id}/health returns score | 1. GET deal health endpoint<br>2. Check response | Returns: health_score, risk_level, risks[] | P0 | Functional |
| SALES-035 | Health Score | Verify healthy deal has score >70 | 1. Create deal with recent activity<br>2. Check health_score | Score > 70, risk_level: LOW | P1 | Functional |
| SALES-036 | Health Score | Verify stalled deal (14-21 days) has reduced score | 1. Create deal updated 15 days ago<br>2. Check health_score | Score 40-70, risk_level: MEDIUM | P0 | Functional |
| SALES-037 | Health Score | Verify very stalled deal (>21 days) has low score | 1. Create deal updated 25 days ago<br>2. Check health_score | Score < 40, risk_level: HIGH | P0 | Functional |
| SALES-038 | Risk Factors | Verify risk factors identified | 1. GET health for at-risk deal<br>2. Check risks array | Specific risks listed: "Stalled for X days", "Low probability", "High value at risk" | P1 | Functional |
| SALES-039 | Risk Factors | Verify high-value low-probability deal flagged | 1. Create deal >$50k with <40% probability<br>2. Check health_score | Score reduced, risk: "High value at risk" | P1 | Functional |
7.5 AI Insights
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-040 | Insights API | Verify GET /api/sales/insights returns insights | 1. GET /api/sales/insights<br>2. Check response | Returns insights array with anomalies | P0 | Functional |
| SALES-041 | Stalled Deals | Verify stalled deals detected | 1. Create deal not updated in 14+ days<br>2. GET insights<br>3. Check for stalled deal insight | Insight generated with severity and recommendation | P0 | Functional |
| SALES-042 | Stalled Deals Severity | Verify critical severity for deals stalled 21+ days | 1. Create deal stalled 25 days<br>2. Check insight severity | Severity: CRITICAL | P1 | Functional |
| SALES-043 | Stalled Deals Severity | Verify warning severity for deals stalled 14-21 days | 1. Create deal stalled 17 days<br>2. Check insight severity | Severity: WARNING | P1 | Functional |
| SALES-044 | High-Value At-Risk | Verify high-value low-probability deals detected | 1. Create deal >$50k, probability <40%<br>2. GET insights<br>3. Check for high-value insight | Insight generated with recommendation | P1 | Functional |
| SALES-045 | Closing Soon | Verify deals closing soon but inactive detected | 1. Create deal closing in 7 days, no recent activity<br>2. GET insights<br>3. Check for closing soon insight | Insight generated to follow up | P1 | Functional |
| SALES-046 | Insights Structure | Verify insight has all required fields | 1. GET insights<br>2. Check insight object | Contains: anomaly_id, severity, title, description, recommendation, deal_id | P1 | Functional |
| SALES-047 | Insights Filtering | Verify insights filtered by tenant | 1. GET insights for tenant A<br>2. GET insights for tenant B | Each tenant sees only their insights | P0 | Security |
7.6 Activity Tracking
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-048 | Activities API | Verify GET /api/sales/activities returns activities | 1. GET /api/sales/activities<br>2. Check response | Returns activities array with total_count | P0 | Functional |
| SALES-049 | Activity Types | Verify all activity types logged | 1. Create deal, update stage, send email<br>2. GET activities<br>3. Check types | Activities: created, stage_changed, email_sent, call_completed | P1 | Functional |
| SALES-050 | Deal Creation Activity | Verify deal creation logged | 1. Create new deal<br>2. GET activities for deal | Activity with type: "created", description includes deal name and value | P1 | Functional |
| SALES-051 | Stage Change Activity | Verify stage change logged | 1. Update deal stage<br>2. GET activities for deal | Activity with type: "stage_changed", from/to stages | P1 | Functional |
| SALES-052 | Email Activity | Verify email logged | 1. Log email sent activity<br>2. GET activities | Activity with type: "email_sent" | P1 | Functional |
| SALES-053 | Call Activity | Verify call completion logged | 1. Log call completed activity<br>2. GET activities | Activity with type: "call_completed" | P1 | Functional |
| SALES-054 | Activity Pagination | Verify activities support pagination | 1. GET activities with limit=10, offset=0<br>2. GET with offset=10 | Correct page of results returned | P1 | Functional |
| SALES-055 | Deal Activities | Verify activities can be filtered by deal | 1. GET /api/sales/activities?deal_id={id}<br>2. Check response | Only activities for that deal returned | P1 | Functional |
| SALES-056 | Activity Timestamps | Verify activities have correct timestamps | 1. Create activity<br>2. Check timestamp | Timestamp matches current time in UTC | P1 | Functional |
| SALES-057 | Activity Descriptions | Verify activity descriptions are clear | 1. Check various activity descriptions | Descriptions are human-readable and informative | P2 | Functional |
7.7 Revenue Forecasting
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-058 | Forecast API | Verify GET /api/sales/forecast returns forecast | 1. GET /api/sales/forecast?months=3<br>2. Check response | Returns forecast[] and summary | P0 | Functional |
| SALES-059 | Forecast by Month | Verify monthly breakdown accurate | 1. Create deals with expected_close_date<br>2. GET forecast<br>3. Check monthly values | Deals grouped by close month correctly | P1 | Functional |
| SALES-060 | Weighted Forecast | Verify weighted forecast calculation | 1. Check monthly weighted_forecast | weighted_forecast = sum(deal_value * probability/100) for month | P0 | Functional |
| SALES-061 | Best Case Forecast | Verify best case uses 100% probability | 1. Check monthly best_case | best_case = sum(deal_value) assuming all close | P1 | Functional |
| SALES-062 | Worst Case Forecast | Verify worst case uses 0% probability | 1. Check monthly worst_case | worst_case = 0 or very pessimistic | P1 | Functional |
| SALES-063 | Forecast Summary | Verify summary totals accurate | 1. Check summary object | total_weighted_forecast, total_best_case, total_deals, avg_confidence | P1 | Functional |
| SALES-064 | Confidence Score | Verify confidence calculation | 1. Check deal confidence | confidence based on deal age, stage, probability | P1 | Functional |
| SALES-065 | Forecast Months | Verify months parameter works | 1. GET forecast?months=6<br>2. Check array length | 6 months of forecast returned | P1 | Functional |
| SALES-066 | Forecast Empty | Verify forecast handles no deals | 1. Delete all deals<br>2. GET forecast | Returns empty forecast with zero values | P1 | Functional |
7.8 Call Processing & Automation
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-067 | Call Ingestion | Verify POST /api/sales/calls/process processes transcript | 1. POST with meeting_id, title, transcript<br>2. Check response | Returns transcript_id, summary, action_items | P0 | Functional |
| SALES-068 | Call Summary | Verify AI generates call summary | 1. POST call transcript<br>2. Check summary field | Concise summary of key discussion points | P1 | Functional |
| SALES-069 | Objection Extraction | Verify objections extracted from transcript | 1. POST transcript with objections<br>2. Check objections array | Objections identified and categorized | P1 | Functional |
| SALES-070 | Action Items | Verify action items extracted | 1. POST transcript<br>2. Check action_items | Action items with owners and deadlines | P1 | Functional |
| SALES-071 | Call Listing | Verify GET /api/sales/calls returns transcripts | 1. GET /api/sales/calls<br>2. Check response | Array of call transcripts | P1 | Functional |
| SALES-072 | Call Listing | Verify calls can be filtered by deal | 1. GET /api/sales/calls?deal_id={id}<br>2. Check response | Only calls for that deal returned | P1 | Functional |
| SALES-073 | Objection Handling | Verify objections can be tracked | 1. POST /api/sales/objections<br>2. Check response | Objection categorized with suggested response | P1 | Functional |
| SALES-074 | Objection Categories | Verify common objection categories | 1. Check objection categories | Pricing, Timeline, Competition, Technical, Authority, Budget | P1 | Functional |
| SALES-075 | Suggested Responses | Verify objection responses suggested | 1. Track objection<br>2. GET suggested response | Rebuttal suggestions provided | P1 | Functional |
7.9 Commission & Order-to-Cash
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-076 | Deal Won | Verify POST /api/sales/deals/{id}/win works | 1. POST to win endpoint<br>2. Check deal status | Deal stage = CLOSED_WON, commission created | P0 | Functional |
| SALES-077 | Commission Calculation | Verify commission calculated on deal won | 1. Win deal worth $100,000<br>2. Check commission entry | Commission = $10,000 (10% default rate) | P1 | Functional |
| SALES-078 | Commission Status | Verify commission starts as ACCRUED | 1. Win deal<br>2. Check commission status | Status: ACCRUED | P1 | Functional |
| SALES-079 | Commission Approval | Verify commission can be approved | 1. PATCH /api/sales/commissions/{id}/approve<br>2. Check status | Status: APPROVED | P1 | Functional |
| SALES-080 | Commission Payment | Verify commission can be marked paid | 1. PATCH /api/sales/commissions/{id}/pay<br>2. Check status | Status: PAID, paid_at timestamp set | P1 | Functional |
| SALES-081 | Order-to-Cash | Verify invoice created on deal won | 1. Win deal<br>2. Check Zoho Books integration | Invoice created in Zoho Books | P1 | Integration |
| SALES-082 | Order-to-Cash | Verify contact created in Zoho Books | 1. Win deal<br>2. Check Zoho Books | Contact created from deal contact info | P1 | Integration |
| SALES-083 | Projected Commission | Verify projected commission calculation | 1. GET /api/sales/commissions/projected<br>2. Check response | Projected commissions for open deals | P1 | Functional |
7.10 CRM Integration
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-084 | Salesforce Sync | Verify leads can be imported from Salesforce | 1. Connect Salesforce<br>2. POST /api/sales/integrations/salesforce/import<br>3. Check database | Leads imported with AI scores applied | P1 | Integration |
| SALES-085 | Salesforce Sync | Verify deals can be imported from Salesforce | 1. Connect Salesforce<br>2. Import opportunities<br>3. Check deals | Deals imported with stage mapping | P1 | Integration |
| SALES-086 | Salesforce Sync | Verify deal stage mapping | 1. Import Salesforce opportunity<br>2. Check deal stage | Salesforce stages mapped to system stages | P1 | Integration |
| SALES-087 | Salesforce Bidirectional | Verify deal changes sync to Salesforce | 1. Update deal in system<br>2. Check Salesforce | Opportunity updated in Salesforce | P1 | Integration |
| SALES-088 | HubSpot Sync | Verify HubSpot deals can be imported | 1. Connect HubSpot<br>2. Import deals<br>3. Check database | Deals imported from HubSpot | P1 | Integration |
| SALES-089 | Platform Badge | Verify deals show platform source | 1. Check deal in pipeline<br>2. Check platform badge | Shows: Salesforce, HubSpot, or Manual | P1 | Functional |
7.11 Performance & Error Handling
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-090 | API Performance | Verify dashboard stats loads in <500ms | 1. Time GET /api/sales/dashboard/stats<br>2. Check response time | Response time < 500ms | P1 | Performance |
| SALES-091 | API Performance | Verify forecast loads in <1000ms | 1. Time GET /api/sales/forecast<br>2. Check response time | Response time < 1000ms | P1 | Performance |
| SALES-092 | API Performance | Verify insights loads in <500ms | 1. Time GET /api/sales/insights<br>2. Check response time | Response time < 500ms | P1 | Performance |
| SALES-093 | Error Handling | Verify invalid tenant_id returns 404 | 1. GET with non-existent tenant_id<br>2. Check response | 404 Not Found | P0 | Functional |
| SALES-094 | Error Handling | Verify missing required fields returns 400 | 1. POST deal without required fields<br>2. Check response | 400 Bad Request with error details | P0 | Functional |
| SALES-095 | Rate Limiting | Verify API rate limiting enforced | 1. Make rapid requests<br>2. Check response after limit | 429 Too Many Requests | P1 | Security |
| SALES-096 | Concurrency | Verify concurrent requests handled | 1. Send 10 concurrent requests<br>2. Check responses | All requests succeed, data consistent | P1 | Performance |
7.12 Data Seeding & Testing
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SALES-097 | Demo Data | Verify seed_sales_demo.py creates test data | 1. Run backend-saas/scripts/seed_sales_demo.py<br>2. Check database | Demo tenant created with 3 leads, 4 deals | P1 | Functional |
| SALES-098 | Demo Data | Verify demo lead scores are correct | 1. Check demo leads<br>2. Verify ai_score values | ceo@growthcorp.com: 92, marketing@startup.io: 65, competitor@rival.com: 0 (SPAM) | P1 | Functional |
| SALES-099 | Demo Data | Verify demo deal pipeline values | 1. Check demo deals<br>2. Verify values and stages | 4 deals across all stages, total >$500k | P1 | Functional |
| SALES-100 | Demo Data | Verify stalled deals detected in demo | 1. GET insights for demo tenant<br>2. Check for stalled deals | 2 stalled deals identified (20 and 30 days) | P1 | Functional |
---
8. Command Centers
8.1 Main Dashboard Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-001 | Main Dashboard | Verify dashboard loads with all widgets | 1. Navigate to /dashboard<br>2. Check all widgets | All widgets displayed: KPIs, Quick Launch, Industry widgets | P0 | Functional |
| CC-002 | KPI Overview | Verify KPI cards display correct data | 1. Check Total Cash & Runway<br>2. Check Sales Pipeline<br>3. Check Daily Intelligence | All KPIs show current values | P1 | Functional |
| CC-003 | Quick Launch Hub | Verify all quick launch options work | 1. Click AI Command<br>2. Click Marketplace<br>3. Click Live Research | Each option navigates to correct page | P1 | Functional |
| CC-004 | Shopify Lifecycle Widget | Verify widget loads Shopify data | 1. Check ShopifyLifecycleWidget<br>2. Verify lifecycle stages | All stages displayed: Discovery, Acquisition, Conversion, etc. | P1 | Functional |
| CC-005 | Industrial Lifecycle Widget | Verify widget shows manufacturing ops | 1. Check IndustrialLifecycleWidget<br>2. Verify stages | Stages: Sourcing, Production, QA, Logistics | P1 | Functional |
| CC-006 | Team Widget | Verify MyTeamWidget shows team members | 1. Check MyTeamWidget<br>2. Verify team list | Team members displayed with status | P1 | Functional |
| CC-007 | Usage Indicator | Verify usage tracks billing | 1. Check UsageIndicator<br>2. Verify percentage | Shows current usage vs quota | P1 | Functional |
8.2 Analytics Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-101 | Analytics Dashboard | Verify analytics page loads | 1. Navigate to /dashboard/analytics<br>2. Check page load | Dashboard displays with ROI metrics | P0 | Functional |
| CC-102 | ROI Configuration | Verify ROI can be configured | 1. Set agent time savings rate<br>2. Save configuration | ROI calculations use configured rate | P1 | Functional |
| CC-103 | Savings Recommendations | Verify recommendations generated | 1. GET /api/billing/recommendations<br>2. Check response | Recommendations for optimization | P1 | Functional |
| CC-104 | Model Optimization | Verify model optimization suggested | 1. Check recommendations<br>2. Find model optimization | Suggests switching to cost-effective models | P1 | Functional |
| CC-105 | Archive Dormant Agents | Verify dormant agents identified | 1. Check recommendations<br>2. Find dormant agents | Agents with no activity >30 days listed | P1 | Functional |
| CC-106 | Daily Spend Trend | Verify spend chart displays | 1. Check Daily Spend Trend chart<br>2. Verify data points | Daily spend over last 30 days | P1 | Functional |
| CC-107 | Workspace Distribution | Verify pie chart shows breakdown | 1. Check Workspace Distribution chart<br>2. Verify segments | Cost breakdown by workspace/agent | P1 | Functional |
| CC-108 | Agent Performance Table | Verify performance table loads | 1. Check Agent Performance table<br>2. Verify columns | Agent name, tasks, success rate, cost displayed | P1 | Functional |
| CC-109 | Success Rate Trend | Verify success rate chart | 1. Check Success Rate Trend<br>2. Verify trend line | Shows success rate over time | P1 | Functional |
| CC-110 | Cost by Model | Verify model cost breakdown | 1. Check Cost by Model chart<br>2. Verify models | GPT-4, Claude, etc. with costs | P1 | Functional |
| CC-111 | Top Agent Spenders | Verify top spenders list | 1. Check Top Agent Spenders<br>2. Verify ranking | Agents sorted by spend desc | P1 | Functional |
8.3 Marketing Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-201 | Marketing Dashboard | Verify marketing page loads | 1. Navigate to /dashboard/marketing<br>2. Check page load | Marketing dashboard with multi-channel tracking | P0 | Functional |
| CC-202 | Shopify Integration | Verify Shopify data displayed | 1. Check Shopify integration<br>2. Verify metrics | Orders, revenue, traffic shown | P1 | Integration |
| CC-203 | Email Campaigns | Verify email campaign tracking | 1. Check email campaigns section<br>2. Verify metrics | Open rate, click rate, conversions | P1 | Functional |
| CC-204 | Social Media | Verify social media metrics | 1. Check social media section<br>2. Verify platforms | Facebook, Instagram, LinkedIn metrics | P1 | Functional |
| CC-205 | Google Ads | Verify Google Ads data | 1. Check Google Ads section<br>2. Verify metrics | Impressions, clicks, CPC, conversions | P1 | Integration |
| CC-206 | Meta Ads | Verify Meta Ads data | 1. Check Meta Ads section<br>2. Verify metrics | Facebook & Instagram ad performance | P1 | Integration |
| CC-207 | Organic Search | Verify SEO metrics displayed | 1. Check organic search section<br>2. Verify metrics | Rankings, traffic, backlinks | P1 | Functional |
| CC-208 | Marketing ROI | Verify ROI calculations accurate | 1. Check MarketingROIView<br>2. Verify ROI percentage | ROI = (revenue - spend) / spend * 100 | P1 | Functional |
| CC-209 | High-Intent Leads | Verify high-intent lead scoring | 1. Check leads section<br>2. Verify scoring | Leads scored by buying intent | P1 | Functional |
| CC-210 | Marketing Agents | Verify marketing agents listed | 1. Check agents grid<br>2. Verify agent types | Shopify, Email, Social, GMB/SEO agents | P1 | Functional |
8.4 Industrial Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-301 | Industrial Dashboard | Verify industrial page loads | 1. Navigate to /dashboard/industrial<br>2. Check page load | Industrial dashboard with lifecycle stages | P0 | Functional |
| CC-302 | Strategic Sourcing | Verify sourcing stage displayed | 1. Check sourcing stage<br>2. Verify metrics | Suppliers, lead times, costs | P1 | Functional |
| CC-303 | Production Flow | Verify production stage | 1. Check production stage<br>2. Verify metrics | Output, efficiency, downtime | P1 | Functional |
| CC-304 | Quality Assurance | Verify QA stage | 1. Check QA stage<br>2. Verify metrics | Defect rate, inspections, passes | P1 | Functional |
| CC-305 | Smart Logistics | Verify logistics stage | 1. Check logistics stage<br>2. Verify metrics | Shipments, tracking, delivery times | P1 | Functional |
| CC-306 | Swarm Activity Feed | Verify activity feed displays | 1. Check activity feed<br>2. Verify actions | Real-time agent actions with timestamps | P1 | Functional |
| CC-307 | Force Optimization | Verify optimization trigger works | 1. Click "Force Optimization"<br>2. Check response | Optimization cycle initiated | P1 | Functional |
| CC-308 | Industrial ROI | Verify ROI calculations | 1. Check IndustrialROIView<br>2. Verify ROI | Efficiency gains, cost savings | P1 | Functional |
| CC-309 | Activity Logging | Verify actions logged with status | 1. Perform action<br>2. Check feed | Action shown with success/failure indicator | P1 | Functional |
8.5 Shopify Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-401 | Shopify Dashboard | Verify Shopify page loads | 1. Navigate to /dashboard/shopify<br>2. Check page load | Shopify command center with e-commerce lifecycle | P0 | Functional |
| CC-402 | Discovery Phase | Verify discovery stage | 1. Check discovery phase<br>2. Verify metrics | Market research, trends, opportunities | P1 | Functional |
| CC-403 | Acquisition Phase | Verify acquisition stage | 1. Check acquisition stage<br>2. Verify metrics | Traffic sources, conversion rates | P1 | Functional |
| CC-404 | Conversion Phase | Verify conversion stage | 1. Check conversion stage<br>2. Verify metrics | Add to cart, checkout completion | P1 | Functional |
| CC-405 | Fulfillment Phase | Verify fulfillment stage | 1. Check fulfillment stage<br>2. Verify metrics | Orders shipped, delivery times | P1 | Functional |
| CC-406 | Retention Phase | Verify retention stage | 1. Check retention stage<br>2. Verify metrics | Repeat purchases, LTV | P1 | Functional |
| CC-407 | Analytics Phase | Verify analytics stage | 1. Check analytics phase<br>2. Verify metrics | Performance reports, insights | P1 | Functional |
| CC-408 | Shopify Swarm | Verify swarm status displayed | 1. GET /api/proxy/shopify/swarm/status<br>2. Check response | Swarm status: active/idle, last run | P1 | Functional |
| CC-409 | Agent Activity Feed | Verify feed shows store actions | 1. Check ShopifyAgentFeed<br>2. Verify actions | Store automation actions logged | P1 | Functional |
| CC-410 | Connection Status | Verify Shopify connection check | 1. Check connection indicator<br>2. Verify status | Shows: Connected/Disconnected | P1 | Functional |
8.6 Financial Forensics Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-501 | Forensics Dashboard | Verify forensics page loads | 1. Navigate to /dashboard/forensics<br>2. Check page load | Forensics dashboard with 3 modules | P0 | Functional |
| CC-502 | Vendor Watch | Verify vendor drift detected | 1. GET /api/business-health/forensics/vendor-drift<br>2. Check response | Vendors with increasing costs listed | P1 | Functional |
| CC-503 | Vendor Drift Alert | Verify drift threshold works | 1. Set vendor cost increase >20%<br>2. Check alerts | Vendor flagged with cost increase % | P1 | Functional |
| CC-504 | Smart Pricing | Verify pricing opportunities identified | 1. GET /api/business-health/forensics/pricing-opportunities<br>2. Check response | Products with pricing potential listed | P1 | Functional |
| CC-505 | Pricing Recommendations | Verify margin analysis | 1. Check pricing opportunities<br>2. Verify margin data | Current margin vs potential | P1 | Functional |
| CC-506 | Subscription Waste | Verify unused SaaS detected | 1. GET /api/business-health/forensics/subscription-waste<br>2. Check response | Unused subscriptions identified | P1 | Functional |
| CC-507 | Subscription Cancellation | Verify cancel suggestions provided | 1. Check subscription waste<br>2. Verify suggestions | Cancel recommendations with savings | P1 | Functional |
| CC-508 | Cost Aggregation | Verify costs aggregated correctly | 1. Check forensics data<br>2. Verify totals | Monthly/quarterly cost totals | P1 | Functional |
8.7 Owner Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-601 | Owner Dashboard | Verify owner page loads | 1. Navigate to /dashboard/owner<br>2. Check page load | Owner dashboard with business insights | P0 | Functional |
| CC-602 | Daily Briefing | Verify AI briefing generated | 1. Check DailyBriefingCard<br>2. Verify content | Personalized business insights | P1 | Functional |
| CC-603 | Health Metrics | Verify health metrics grid | 1. Check HealthMetricsGrid<br>2. Verify metrics | KPIs across all areas | P1 | Functional |
| CC-604 | Business Health API | Verify health data returned | 1. GET /api/business-health/dashboard<br>2. Check response | Overall health score and metrics | P1 | Functional |
| CC-605 | Decision Simulator | Verify simulator available | 1. Check for Decision Simulator<br>2. Verify status | Shows "Coming Soon" or functional | P2 | Functional |
8.8 Risk & Resilience Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-701 | Risk Dashboard | Verify risk page loads | 1. Navigate to /dashboard/risk<br>2. Check page load | Risk dashboard with 4 modules | P0 | Functional |
| CC-702 | Churn Prediction | Verify churn predictions generated | 1. GET /api/business-health/risk/churn-predictions<br>2. Check response | Customers at risk with probability | P1 | Functional |
| CC-703 | Churn Probability | Verify probability scores accurate | 1. Check churn predictions<br>2. Verify scores | Scores 0-100%, high risk >70% | P1 | Functional |
| CC-704 | Financial Risk | Verify financial risk detection | 1. GET /api/business-health/risk/financial-risk<br>2. Check response | Fraud alerts, AR delays | P1 | Functional |
| CC-705 | Fraud Detection | Verify fraud alerts work | 1. Check financial risk<br>2. Verify fraud alerts | Suspicious transactions flagged | P1 | Functional |
| CC-706 | AR Delays | Verify AR delay predictions | 1. Check financial risk<br>2. Verify AR delays | Overdue invoices predicted | P1 | Functional |
| CC-707 | Growth Readiness | Verify growth constraints identified | 1. GET /api/business-health/risk/growth-constraints<br>2. Check response | Bottlenecks listed | P1 | Functional |
| CC-708 | Security Audit | Verify desktop security monitor | 1. Check DesktopSecurityAudit<br>2. Verify status | Security status and issues | P1 | Functional |
8.9 Support Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-801 | Support Dashboard | Verify support page loads | 1. Navigate to /dashboard/support<br>2. Check page load | Support dashboard with tickets | P0 | Functional |
| CC-802 | Ticket Creation | Verify ticket can be created | 1. POST /api/support/tickets<br>2. Check response | Ticket created with ticket_id | P1 | Functional |
| CC-803 | Ticket Listing | Verify tickets listed | 1. GET /api/support/tickets<br>2. Check response | Array of support tickets | P1 | Functional |
| CC-804 | Ticket Details | Verify ticket details load | 1. GET /api/support/tickets/{id}<br>2. Check response | Full ticket details with history | P1 | Functional |
| CC-805 | Ticket Priority | Verify priority badges work | 1. Check ticket list<br>2. Verify priority display | High/Low priority badges shown | P1 | Functional |
| CC-806 | AI Responses | Verify AI generates responses | 1. Open ticket<br>2. Click "Generate AI Response"<br>3. Check response | Contextual response generated | P1 | Functional |
| CC-807 | Real-time Updates | Verify ticket status updates | 1. Update ticket status<br>2. Check UI | Status updates in real-time | P1 | Functional |
| CC-808 | Ticket History | Verify ticket detail shows history | 1. Open ticket<br>2. Check TicketDetail | History of all changes shown | P1 | Functional |
8.10 Skills Marketplace Command Center
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-901 | Skills Dashboard | Verify skills page loads | 1. Navigate to /dashboard/skills<br>2. Check page load | Skills marketplace with available skills | P0 | Functional |
| CC-902 | Skill Discovery | Verify skills can be browsed | 1. Check skills grid<br>2. Verify filters | Skills displayed with filters | P1 | Functional |
| CC-903 | Skill Assignment | Verify skill can be assigned to agent | 1. Select skill<br>2. Click "Assign"<br>3. Choose agent | Skill assigned to agent | P1 | Functional |
| CC-904 | Skill Types | Verify all skill types listed | 1. Check skill type badges<br>2. Verify types | API, Function, Script, Docker | P1 | Functional |
| CC-905 | Public Skills | Verify public skills visible | 1. Filter by public<br>2. Check results | Public marketplace skills shown | P1 | Functional |
| CC-906 | Private Skills | Verify private skills shown | 1. Filter by private<br>2. Check results | Tenant-specific skills shown | P1 | Functional |
| CC-907 | Skill Creation | Verify skill can be created | 1. Navigate to /dashboard/skills/create<br>2. Create skill | Skill added to marketplace | P1 | Functional |
8.11 Additional Component Command Centers
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| CC-1001 | Budget Command Center | Verify budget dashboard works | 1. Access BudgetCommandCenter component<br>2. Check data | Budget tracking displayed | P2 | Functional |
| CC-1002 | Communication Command Center | Verify communication dashboard works | 1. Access CommunicationCommandCenter<br>2. Check features | Team messaging, email analytics | P2 | Functional |
| CC-1003 | Finance Command Center | Verify finance dashboard works | 1. Access FinanceCommandCenter<br>2. Check features | Accounting, invoicing, reports | P2 | Functional |
| CC-1004 | Knowledge Command Center | Verify knowledge dashboard works | 1. Access KnowledgeCommandCenter<br>2. Check features | Documentation, KB, AI search | P2 | Functional |
| CC-1005 | Project Command Center | Verify project dashboard works | 1. Access ProjectCommandCenter<br>2. Check features | Projects, tasks, milestones | P2 | Functional |
| CC-1006 | Sales Command Center Component | Verify sales component works | 1. Access SalesCommandCenter component<br>2. Check features | Pipeline, CRM, deals | P2 | Functional |
---
9. Security & Governance
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SEC-001 | Rate Limiting | Verify rate limit enforced on API | 1. Make rapid requests to API endpoint<br>2. Check response after threshold | 429 Too Many Requests returned | P0 | Security |
| SEC-002 | Rate Limiting | Verify rate limit is per-tenant | 1. Make requests from tenant A<br>2. Make requests from tenant B<br>3. Check limits | Each tenant has independent rate limit | P0 | Security |
| SEC-003 | Agent Governance | Verify governance rules block unauthorized actions | 1. Create governance rule blocking data deletion<br>2. Attempt deletion with agent | Action blocked, rule violation logged | P0 | Security |
| SEC-004 | Agent Governance | Verify governance logs are auditable | 1. Check governance audit logs<br>2. Filter by agent, action, date | All governance decisions logged with timestamps | P1 | Security |
| SEC-005 | BYOK | Verify tenant can provide own API key | 1. Navigate to /settings/security<br>2. Enter OpenAI API key<br>3. Save | Key encrypted and stored in tenant_settings | P1 | Security |
| SEC-006 | BYOK | Verify tenant API key is used for embeddings | 1. Set tenant API key<br>2. Perform action requiring embeddings<br>3. Check API usage | Tenant's key used, not platform key | P1 | Security |
| SEC-007 | Audit Logging | Verify all user actions are logged | 1. Perform any action (create agent, etc.)<br>2. Check audit logs | Action logged with user, timestamp, details | P0 | Security |
| SEC-008 | Audit Logging | Verify audit logs are tamper-proof | 1. Attempt to modify audit log entry<br>2. Check result | Modification denied or logged | P1 | Security |
| SEC-009 | RBAC | Verify role-based access control works | 1. Create user with Viewer role<br>2. Attempt admin action | Access denied, 403 Forbidden | P0 | Security |
| SEC-010 | RBAC | Verify permissions can be customized | 1. Create custom role<br>2. Assign specific permissions<br>3. Assign to user<br>4. Test access | User has exactly assigned permissions | P1 | Functional |
| SEC-011 | Data Encryption | Verify sensitive data encrypted at rest | 1. Check database for API keys<br>2. Check S3 for sensitive files | Data encrypted, not plaintext | P0 | Security |
| SEC-012 | Data Encryption | Verify data encrypted in transit | 1. Check API connection<br>2. Check database connection | TLS/SSL enforced | P0 | Security |
---
10. Package Management
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| PKG-001 | Python Whitelist | Verify approved package can be installed | 1. Request installation of whitelisted package<br>2. Check installation | Package installed successfully | P1 | Functional |
| PKG-002 | Python Whitelist | Verify non-whitelisted package blocked | 1. Request installation of non-whitelisted package<br>2. Check result | Installation blocked, approval requested | P0 | Security |
| PKG-003 | Python Whitelist | Verify vulnerability scan runs on install | 1. Install whitelisted package<br>2. Check scan results | pip-audit or Snyk scan executed | P1 | Security |
| PKG-004 | Python Whitelist | Verify vulnerable package version blocked | 1. Attempt to install package with known vulnerability<br>2. Check result | Installation blocked, vulnerability reported | P0 | Security |
| PKG-005 | NPM Integration | Verify NPM package can be installed | 1. Request NPM package installation<br>2. Check result | Package installed in Docker container | P1 | Functional |
| PKG-006 | NPM Integration | Verify NPM audit runs on install | 1. Install NPM package<br>2. Check audit results | npm audit executed, vulnerabilities reported | P1 | Security |
| PKG-007 | Package Isolation | Verify packages isolated per skill | 1. Install package for skill A<br>2. Check skill B environment | Package not available to skill B | P1 | Security |
| PKG-008 | Package Approval | Verify admin can approve package | 1. Navigate to package whitelist<br>2. Submit package for approval<br>3. Admin approves<br>4. Install package | Package added to whitelist, installation succeeds | P1 | Functional |
| PKG-009 | postinstall Protection | Verify malicious postinstall blocked | 1. Attempt package with suspicious postinstall<br>2. Check execution | postinstall executed in isolated container | P0 | Security |
---
11. Billing & Pricing
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| BILL-001 | Pricing Tiers | Verify all 4 tiers available | 1. Navigate to /settings/billing<br>2. Check upgrade options | Free, Solo ($19), Team ($79), Enterprise ($299) shown | P1 | Functional |
| BILL-002 | Usage Tracking | Verify agent usage tracked | 1. Execute agent tasks<br>2. Check usage dashboard | Task count incremented, quota updated | P0 | Functional |
| BILL-003 | Usage Limits | Verify free tier limit of 50/day enforced | 1. Execute 50 agent tasks on free tier<br>2. Attempt 51st task | Error: "Daily limit reached" | P0 | Functional |
| BILL-004 | Usage Limits | Verify solo tier limit of 500/day | 1. Upgrade to Solo tier<br>2. Execute 500 agent tasks<br>3. Attempt 501st task | Error: "Daily limit reached" | P1 | Functional |
| BILL-005 | Billing Cycle | Verify billing cycle is monthly | 1. Check billing start date<br>2. Wait one month<br>3. Check invoice | Invoice generated for monthly period | P1 | Functional |
| BILL-006 | Invoice Generation | Verify invoice includes line items | 1. Navigate to billing<br>2. View latest invoice | Invoice shows: Plan, usage, total amount | P1 | Functional |
| BILL-007 | Payment Processing | Verify payment method can be added | 1. Navigate to billing<br>2. Click "Add Payment Method"<br>3. Enter card details<br>4. Save | Payment method added and verified | P0 | Functional |
| BILL-008 | Payment Processing | Verify payment fails with invalid card | 1. Attempt to add invalid card<br>2. Check result | Error: "Invalid payment method" | P1 | Functional |
| BILL-009 | Subscription Upgrade | Verify upgrade takes effect immediately | 1. Upgrade from Free to Solo<br>2. Check agent limit | Limit increased to 10 agents immediately | P1 | Functional |
| BILL-010 | Subscription Downgrade | Verify downgrade takes effect next cycle | 1. Downgrade from Team to Solo<br>2. Check current limits | Full Team features until cycle end | P1 | Functional |
| BILL-011 | Enterprise Plan | Verify enterprise allows unlimited agents | 1. Subscribe to Enterprise<br>2. Create agents beyond 25 | No agent limit enforced | P1 | Functional |
---
12. Admin & Monitoring
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| ADM-001 | Admin Dashboard | Verify admin dashboard accessible to admins | 1. Login as admin user<br>2. Navigate to /admin | Dashboard loads with admin controls | P0 | Functional |
| ADM-002 | Admin Dashboard | Verify non-admin cannot access admin dashboard | 1. Login as regular user<br>2. Navigate to /admin | 403 Forbidden or redirect | P0 | Security |
| ADM-003 | User Management | Verify admin can view all users | 1. Navigate to admin/users<br>2. Check user list | All users across tenants displayed | P1 | Functional |
| ADM-004 | User Management | Verify admin can deactivate user | 1. Select user<br>2. Click "Deactivate"<br>3. Confirm | User deactivated, cannot login | P1 | Functional |
| ADM-005 | Tenant Management | Verify admin can view all tenants | 1. Navigate to admin/tenants<br>2. Check tenant list | All tenants displayed with metrics | P1 | Functional |
| ADM-006 | Tenant Management | Verify admin can suspend tenant | 1. Select tenant<br>2. Click "Suspend"<br>3. Confirm | Tenant suspended, all access blocked | P1 | Functional |
| ADM-007 | System Health | Verify health metrics displayed | 1. Navigate to admin/health<br>2. Check metrics | CPU, memory, database, Redis status shown | P1 | Functional |
| ADM-008 | System Logs | Verify system logs accessible | 1. Navigate to admin/logs<br>2. Apply filters | Logs displayed with filtering options | P1 | Functional |
| ADM-009 | Governance Panel | Verify governance rules manageable | 1. Navigate to governance panel<br>2. Create/edit/delete rule | Rules CRUD operations work | P1 | Functional |
| ADM-010 | Interventions Feed | Verify interventions displayed in real-time | 1. Trigger agent intervention<br>2. Check interventions feed | Intervention appears with details | P1 | Functional |
---
13. Dashboard & Analytics
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| DASH-001 | Main Dashboard | Verify dashboard loads for authenticated user | 1. Login to application<br>2. Navigate to /dashboard | Dashboard displays with widgets | P0 | Functional |
| DASH-002 | Main Dashboard | Verify dashboard shows agent summary | 1. Check dashboard agents widget | Total agents, active agents, by maturity shown | P1 | Functional |
| DASH-003 | Industry Dashboard | Verify industry-specific dashboards load | 1. Navigate to /dashboard/marketing<br>2. Check content | Marketing-specific metrics and tools shown | P1 | Functional |
| DASH-004 | Analytics Dashboard | Verify analytics page displays charts | 1. Navigate to /analytics<br>2. Check visualizations | Charts for agent performance, usage, etc. | P1 | Functional |
| DASH-005 | Analytics Dashboard | Verify date range filter works | 1. Select custom date range<br>2. Apply filter | Charts update for selected period | P1 | Functional |
| DASH-006 | Analytics Dashboard | Verify data can be exported | 1. Click "Export"<br>2. Select format (CSV/JSON)<br>3. Download | File downloaded with correct data | P1 | Functional |
---
14. Marketplace
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| MKT-001 | Skill Marketplace | Verify marketplace displays skills | 1. Navigate to /marketplace<br>2. Browse skills | Skills listed with descriptions, ratings | P1 | Functional |
| MKT-002 | Skill Marketplace | Verify skills can be filtered | 1. Apply filters (category, rating, price)<br>2. Check results | Filtered skills displayed | P1 | Functional |
| MKT-003 | Skill Purchase | Verify free skill can be installed | 1. Select free skill<br>2. Click "Install"<br>3. Confirm | Skill added to tenant, ready to use | P1 | Functional |
| MKT-004 | Skill Purchase | Verify paid skill requires payment | 1. Select paid skill<br>2. Click "Purchase"<br>3. Check result | Payment flow initiated | P1 | Functional |
| MKT-005 | Skill Submission | Verify custom skill can be submitted | 1. Navigate to /canvas-skills/marketplace/submit<br>2. Upload skill<br>3. Enter details<br>4. Submit | Skill submitted for review | P1 | Functional |
| MKT-006 | Skill Rating | Verify skills can be rated | 1. Use installed skill<br>2. Submit rating and review<br>3. Check marketplace | Rating updated, review displayed | P1 | Functional |
| MKT-007 | Canvas Marketplace | Verify canvas components can be shared | 1. Create canvas component<br>2. Submit to marketplace<br>3. Check listing | Component appears in marketplace | P2 | Functional |
---
15. Settings & Configuration
| Test ID | Feature | Test Case | Test Steps | Expected Result | Priority | Type |
|---|---|---|---|---|---|---|
| SET-001 | Account Settings | Verify user profile can be updated | 1. Navigate to /settings/account<br>2. Update name, email<br>3. Save | Changes saved and reflected | P1 | Functional |
| SET-002 | Account Settings | Verify password can be changed | 1. Navigate to /settings/account<br>2. Enter current password<br>3. Enter new password<br>4. Save | Password updated, must re-login | P1 | Functional |
| SET-003 | Notification Settings | Verify notification preferences work | 1. Navigate to /settings/notifications<br>2. Toggle notification types<br>3. Save | Preferences saved, notifications updated | P1 | Functional |
| SET-004 | Security Settings | Verify 2FA can be enabled/disabled | 1. Navigate to /settings/security<br>2. Toggle 2FA<br>3. Follow setup/disable steps | 2FA status updated | P1 | Security |
| SET-005 | Governance Settings | Verify governance rules can be configured | 1. Navigate to /settings/governance<br>2. Create rule<br>3. Set conditions<br>4. Save | Rule created and enforced | P1 | Functional |
| SET-006 | SSO Configuration | Verify SSO can be configured | 1. Navigate to /settings/sso<br>2. Enter SSO provider details<br>3. Save | SSO configuration saved | P1 | Integration |
| SET-007 | Role Management | Verify custom roles can be created | 1. Navigate to /settings/roles<br>2. Click "New Role"<br>3. Set permissions<br>4. Save | Role created, can assign to users | P1 | Functional |
---
Test Execution Summary
Priority Breakdown
- **P0 (Critical):** 112 tests - Must pass for release
- **P1 (High):** 237 tests - Important features
- **P2 (Medium):** 24 tests - Nice to have
- **P3 (Low):** 0 tests - Future enhancements
**Total Test Cases:** 373
Type Breakdown
- **Functional:** 252 tests
- **Security:** 56 tests
- **Integration:** 48 tests
- **Performance:** 17 tests
- **E2E:** 0 tests (covered by Playwright)
---
Coverage by Feature Area
| Feature Area | Test Count | Coverage |
|---|---|---|
| **Sales Hub** | 100 | Comprehensive |
| **Command Centers** | 106 | Comprehensive |
| Authentication & Authorization | 15 | Complete |
| Agent Management | 18 | Complete |
| Multi-Tenancy | 10 | Complete |
| Canvas System | 14 | Complete |
| Brain Systems | 15 | Complete |
| Integrations | 14 | Complete |
| Security & Governance | 12 | Complete |
| Package Management | 9 | Complete |
| Billing & Pricing | 11 | Complete |
| Admin & Monitoring | 10 | Complete |
| Dashboard & Analytics | 6 | Complete |
| Marketplace | 7 | Complete |
| Settings & Configuration | 7 | Complete |
---
Test Data Requirements
Sales Hub Test Data
# Demo tenant
tenant_id = "demo_tenant"
workspace_id = "demo_workspace"
# Test leads
leads = [
{"email": "ceo@growthcorp.com", "ai_score": 92, "status": "QUALIFIED"},
{"email": "marketing@startup.io", "ai_score": 65, "status": "NEW"},
{"email": "competitor@rival.com", "ai_score": 0, "status": "SPAM"}
]
# Test deals
deals = [
{"name": "Enterprise License", "value": 120000, "stage": "NEGOTIATION"},
{"name": "Global Rollout", "value": 250000, "stage": "PROPOSAL", "stalled_days": 20},
{"name": "Team Expansion", "value": 45000, "stage": "QUALIFICATION"},
{"name": "Security Upgrade", "value": 85000, "stage": "DISCOVERY", "stalled_days": 30}
]Command Centers Test Data
- Shopify store with order history
- Industrial manufacturing processes
- Marketing campaigns across channels
- Support tickets with various priorities
- Financial transactions for forensics
---
Test Execution Commands
Backend Tests
# Run all backend tests
cd backend-saas && pytest
# Run sales-specific tests
cd backend-saas && pytest tests/sales/
# Seed test data
cd backend-saas && python scripts/seed_sales_demo.pyFrontend Tests
# Run all frontend tests
npm run test
# Run E2E tests
npm run test:e2e
# Run coverage
npm run test:coverageAPI Testing
# Test sales hub endpoints
./test_sales_hub.sh
# Test sales API
./test_sales_api.sh---
**Document Status:** ✅ Complete - Comprehensive Version
**Total Test Cases:** 373
**Ready for Import to Excel:** Yes - See CSV version
**Last Review:** 2026-03-06