ATOM Documentation

← Back to App

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

ColumnDescription
**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

  1. Authentication & Authorization
  2. Agent Management
  3. Multi-Tenancy
  4. Canvas System
  5. Brain Systems
  6. Integrations
  7. Sales Hub - COMPREHENSIVE
  8. Command Centers
  9. Security & Governance
  10. Package Management
  11. Billing & Pricing
  12. Admin & Monitoring
  13. Dashboard & Analytics
  14. Marketplace
  15. Settings & Configuration

---

1. Authentication & Authorization

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
AUTH-001User SignupVerify new user can sign up with valid credentials1. Navigate to /auth/signup<br>2. Enter valid email, password, and confirm password<br>3. Click "Sign Up"<br>4. Check email for verification linkUser account created, verification email sent, redirect to verification pageP0Functional
AUTH-002User SignupVerify password validation during signup1. 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"P0Functional
AUTH-003User SignupVerify email uniqueness validation1. Navigate to /auth/signup<br>2. Enter already registered email<br>3. Click "Sign Up"Error message: "Email already registered"P1Functional
AUTH-004User LoginVerify user can login with valid credentials1. Navigate to /auth/signin<br>2. Enter registered email and password<br>3. Click "Sign In"User redirected to dashboard, session establishedP0Functional
AUTH-005User LoginVerify login fails with invalid credentials1. Navigate to /auth/signin<br>2. Enter invalid email/password<br>3. Click "Sign In"Error message: "Invalid credentials"P1Functional
AUTH-006Email VerificationVerify email verification link works1. Click verification link from email<br>2. Wait for redirectEmail verified, user redirected to dashboard with success messageP0Functional
AUTH-007Password ResetVerify password reset request1. 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 displayedP1Functional
AUTH-0082FA SetupVerify 2FA can be enabled1. Navigate to /settings/security<br>2. Click "Enable 2FA"<br>3. Scan QR code with authenticator app<br>4. Enter verification code2FA enabled successfully, backup codes providedP1Security
AUTH-0092FA LoginVerify login requires 2FA code when enabled1. Login with email/password<br>2. Enter 2FA code from authenticatorAccess granted after valid 2FA codeP1Security
AUTH-010SSO LoginVerify SSO login with Google OAuth1. Navigate to /auth/sso<br>2. Click "Sign in with Google"<br>3. Authorize with Google accountUser logged in, account created/linkedP1Integration
AUTH-011SSO LoginVerify SSO login with Microsoft OAuth1. Navigate to /auth/sso<br>2. Click "Sign in with Microsoft"<br>3. Authorize with Microsoft accountUser logged in, account created/linkedP1Integration
AUTH-012Session ManagementVerify session persists across page refreshes1. Login to application<br>2. Refresh pageUser remains logged in, session data preservedP1Functional
AUTH-013Session ExpiryVerify session expires after inactivity1. Login to application<br>2. Wait for session timeout (30 min)<br>3. Perform any actionRedirected to login page with "Session expired" messageP1Security
AUTH-014LogoutVerify user can logout successfully1. Click logout button<br>2. Confirm logoutSession cleared, redirected to login pageP0Functional
AUTH-015Admin Key BypassVerify admin key bypasses auth for testing1. Add X-Admin-Key header to request<br>2. Call protected endpointAccess granted without standard authP1Security

---

2. Agent Management

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
AGENT-001Agent CreationVerify new agent can be created1. 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 listP0Functional
AGENT-002Agent CreationVerify agent name uniqueness in Agent Studio1. 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 createdP1Functional
AGENT-003Agent CreationVerify all maturity levels available1. Navigate to /agents/new<br>2. Check maturity level dropdownOptions: Student, Intern, Supervised, AutonomousP1Functional
AGENT-004Agent EditingVerify agent details can be edited1. Navigate to /agents<br>2. Click edit on existing agent<br>3. Update name, role, or description<br>4. Save changesChanges saved and reflected in agent detailsP1Functional
AGENT-005Agent DeletionVerify Agent Studio does not expose direct deletion controls1. 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 screenNo direct delete action is available in Agent Studio; deletion must be handled outside this pageP1Functional
AGENT-006Agent ExecutionVerify student agent can perform read-only tasks1. Create agent with Student maturity<br>2. Assign search task<br>3. Execute taskTask completes with search resultsP0Functional
AGENT-007Agent ExecutionVerify student agent blocked from write operations1. Create agent with Student maturity<br>2. Assign task requiring data modification<br>3. Execute taskError: "Insufficient permissions for this operation"P0Security
AGENT-008Agent ExecutionVerify intern agent requires approval for actions1. Create agent with Intern maturity<br>2. Assign action task<br>3. Execute taskProposal created, approval requiredP0Functional
AGENT-009Agent ExecutionVerify supervised agent queues when unavailable1. Create agent with Supervised maturity<br>2. Set user availability to offline<br>3. Assign taskTask queued, notification sent when user availableP0Functional
AGENT-010Agent ExecutionVerify autonomous agent can execute independently1. Create agent with Autonomous maturity<br>2. Assign complex task<br>3. Execute taskTask completes without human interventionP0Functional
AGENT-011Agent LimitsVerify free tier limited to 3 agents1. Create 3 agents on free tier<br>2. Attempt to create 4th agentError: "Agent limit reached. Upgrade to create more agents."P1Functional
AGENT-012Agent LimitsVerify solo tier allows 10 agents1. Upgrade to Solo tier<br>2. Create up to 10 agentsAll 10 agents created successfullyP1Functional
AGENT-013Agent HistoryVerify agent execution history is tracked from the Agents dashboard1. 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 modalA history entry is shown for the run with status and timestamp, and the trace can be opened from the modalP1Functional
AGENT-014Agent TerminalVerify live agent terminal works1. Navigate to agent studio<br>2. Open agent terminal<br>3. Execute taskReal-time task output displayed in terminalP1Functional
AGENT-015Agent FeedbackVerify feedback can be submitted for agent actions1. Execute agent task<br>2. Click "Provide Feedback"<br>3. Submit rating and commentsFeedback recorded, agent learning updatedP1Functional
AGENT-016Agent GovernanceVerify governance rules enforced1. Create governance rule restricting action type<br>2. Attempt restricted action with agentAction blocked by governanceP1Security
AGENT-017Agent CoordinationVerify multiple agents can coordinate1. Create 3 agents with different roles<br>2. Assign coordinated task<br>3. ExecuteAgents collaborate, task completesP1Functional
AGENT-018Agent StatusVerify agent status updates in real-time1. Monitor agent status widget<br>2. Execute long-running task<br>3. Check status updatesStatus changes: Idle → Running → CompletedP1Functional

---

3. Multi-Tenancy

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
MT-001Tenant IsolationVerify tenants cannot access each other's data1. Login as tenant A user<br>2. Note tenant ID in URL<br>3. Attempt to access tenant B data via API403 Forbidden or 404 Not FoundP0Security
MT-002Tenant IsolationVerify agents filtered by tenant_id1. Create agents in two different tenants<br>2. Query agents APIEach tenant only sees their own agentsP0Security
MT-003Subdomain RoutingVerify subdomain routing works correctly1. Navigate to tenant-a.atom-saas.fly.dev<br>2. Check tenant contextCorrect tenant loaded from subdomainP0Functional
MT-004RLSVerify Row-Level Security enforced at DB level1. Direct database query with tenant A credentials<br>2. Query tenant B tablesEmpty result set, RLS policy blocks accessP0Security
MT-005S3 IsolationVerify S3 paths are tenant-specific1. Upload file for tenant A<br>2. Check S3 pathFile stored in s3://atom-saas/{tenant_id}/ pathP0Security
MT-006Redis IsolationVerify Redis keys are tenant-scoped1. Set Redis key for tenant A<br>2. Attempt to read from tenant B contextKey not found, proper namespacing (tenant:{id}:key)P0Security
MT-007Tenant CreationVerify new tenant can be created1. Submit tenant creation request<br>2. Set subdomain, admin emailTenant created, unique subdomain assignedP0Functional
MT-008Tenant InvitationVerify users can be invited to tenant1. Navigate to tenant/invite<br>2. Enter user email<br>3. Select role<br>4. Send invitationInvitation email sent, user added to tenantP1Functional
MT-009Tenant DeletionVerify tenant data is isolated on deletion1. Delete tenant A<br>2. Verify tenant B data intactOnly tenant A data removed, tenant B unaffectedP1Functional
MT-010Tenant SwitchingVerify user can switch between tenants1. User belongs to multiple tenants<br>2. Use tenant switcher<br>3. Select different tenantContext switches to new tenant, data updatesP1Functional

---

4. Canvas System

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CV-001Canvas BrowserVerify browser canvas can navigate websites1. Navigate to /canvas/browser/{id}<br>2. Enter URL in address bar<br>3. Click "Go"Website loads in canvas iframeP0Functional
CV-002Canvas BrowserVerify browser canvas captures DOM1. Load webpage in browser canvas<br>2. Click "Capture DOM"<br>3. Check captured dataPage DOM structure captured and storedP1Functional
CV-003Canvas CodingVerify code execution canvas works1. Navigate to /canvas/coding/{id}<br>2. Write Python code<br>3. Click "Execute"Code executes, output displayedP0Functional
CV-004Canvas CodingVerify code execution is isolated1. Execute code accessing filesystem<br>2. Check resultAccess denied or isolated environmentP1Security
CV-005Canvas EmailVerify email canvas can read emails1. Navigate to /canvas/email/{id}<br>2. Connect email account<br>3. Load emailsEmail list displayed in canvasP1Functional
CV-006Canvas EmailVerify email canvas can compose emails1. Open email canvas<br>2. Click "Compose"<br>3. Enter recipient, subject, body<br>4. Click "Send"Email sent successfullyP1Functional
CV-007Canvas SpreadsheetVerify spreadsheet canvas can load CSV1. Navigate to /canvas/spreadsheet/{id}<br>2. Upload CSV file<br>3. Click "Load"Data displayed in spreadsheet formatP1Functional
CV-008Canvas SpreadsheetVerify spreadsheet can execute formulas1. Load data in spreadsheet canvas<br>2. Add formula cell (e.g., =SUM(A1:A10))<br>3. Check resultFormula calculated correctlyP1Functional
CV-009Canvas TerminalVerify terminal canvas can execute commands1. Navigate to /canvas/terminal/{id}<br>2. Enter shell command<br>3. Press EnterCommand executes, output displayedP1Functional
CV-010Canvas TerminalVerify terminal is rate-limited1. Execute multiple commands rapidly<br>2. Check rate limitRate limit enforced after thresholdP1Security
CV-011Canvas PersistenceVerify canvas state is saved1. Open canvas, make changes<br>2. Close canvas<br>3. Reopen canvasChanges restored from previous stateP1Functional
CV-012Canvas SharingVerify canvas can be shared with users1. Open canvas<br>2. Click "Share"<br>3. Add user email<br>4. Set permissionsUser granted access to canvasP1Functional
CV-013Canvas AuditVerify canvas actions are audited1. Perform action in canvas<br>2. Check audit logsAction logged with timestamp, user, canvas IDP1Security
CV-014Canvas IntegrationVerify canvas can integrate with skills1. Open canvas<br>2. Browse skill marketplace<br>3. Install skill<br>4. Use skill in canvasSkill functionality available in canvasP1Integration

---

5. Brain Systems

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
BR-001Cognitive ArchitectureVerify cognitive architecture initializes agent1. Create new agent<br>2. Call cognitive architecture initialize<br>3. Check agent stateAgent initialized with reasoning, memory, attentionP0Functional
BR-002Cognitive ArchitectureVerify reasoning process generates decisions1. Initialize agent with cognitive architecture<br>2. Submit task<br>3. Call reasoning functionDecision returned with rationaleP1Functional
BR-003World ModelVerify experiences are recorded1. Execute agent task<br>2. Check world model storageExperience stored with agent_id, task_type, outcomeP0Functional
BR-004World ModelVerify semantic search retrieves relevant experiences1. Record multiple experiences<br>2. Search by task description<br>3. Check resultsRelevant experiences returned ranked by similarityP1Functional
BR-005World ModelVerify world model respects tenant isolation1. Record experience for tenant A<br>2. Search from tenant BNo results returned, proper isolationP0Security
BR-006Learning EngineVerify patterns are learned from experiences1. Record multiple similar experiences<br>2. Generate adaptations<br>3. Check learned patternsPatterns identified and adaptations suggestedP1Functional
BR-007Learning EngineVerify RLHF improves agent performance1. Submit feedback on agent actions<br>2. Execute similar task<br>3. Check performancePerformance improves based on feedbackP1Functional
BR-008Reasoning EngineVerify proactive interventions triggered1. Set reasoning rule for opportunity<br>2. Trigger condition<br>3. Check interventionsIntervention generated with URGENT/OPPORTUNITY/AUTOMATION typeP1Functional
BR-009Cross-System ReasoningVerify data correlation across integrations1. Connect Salesforce and Slack integrations<br>2. Trigger cross-system reasoning<br>3. Check correlationsCorrelated insights from both systemsP2Functional
BR-010Episodic MemoryVerify episodes capture context1. Execute agent task<br>2. Check episode recordEpisode stored with task, context, outcomeP0Functional
BR-011Graduation SystemVerify readiness score calculated correctly1. Execute agent tasks<br>2. Check readiness scoreScore = zero_intervention_ratio*0.4 + constitutional_score*0.3 + confidence_score*0.2 + success_rate*0.1P0Functional
BR-012Graduation SystemVerify student promotes to intern at 70%1. Achieve 70% readiness with student agent<br>2. Check maturity levelAgent promoted to internP0Functional
BR-013Graduation SystemVerify intern promotes to supervised at 80%1. Achieve 80% readiness with intern agent<br>2. Check maturity levelAgent promoted to supervisedP0Functional
BR-014Graduation SystemVerify supervised promotes to autonomous at 95%1. Achieve 95% readiness with supervised agent<br>2. Check maturity levelAgent promoted to autonomousP0Functional
BR-015Episode FeedbackVerify feedback can be submitted for episodes1. Navigate to episode<br>2. Submit rating (0-1) and comments<br>3. Check feedback recordFeedback stored, used for RLHFP1Functional

---

6. Integrations

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
INT-001OAuth FlowVerify OAuth authorization flow1. Navigate to integrations<br>2. Click "Connect" on any integration<br>3. Authorize on provider site<br>4. Wait for redirectIntegration connected, OAuth token storedP0Integration
INT-002OAuth FlowVerify OAuth token is refreshed1. Connect OAuth integration<br>2. Wait for token to approach expiry<br>3. Make API callToken refreshed automatically, call succeedsP1Integration
INT-003OAuth FlowVerify OAuth can be disconnected1. Navigate to integrations<br>2. Click "Disconnect" on connected integrationIntegration disconnected, tokens removedP1Functional
INT-004SalesforceVerify Salesforce can fetch contacts1. Connect Salesforce integration<br>2. Click "Fetch Contacts"<br>3. Check resultsContacts displayed from SalesforceP1Integration
INT-005SalesforceVerify Salesforce can create lead1. Connect Salesforce integration<br>2. Submit new lead data<br>3. Verify in SalesforceLead created in SalesforceP1Integration
INT-006SlackVerify Slack can send message1. Connect Slack integration<br>2. Compose message<br>3. Select channel<br>4. SendMessage posted to Slack channelP1Integration
INT-007SlackVerify Slack can read messages1. Connect Slack integration<br>2. Select channel<br>3. Click "Fetch Messages"Recent messages displayedP1Integration
INT-008Google DriveVerify Google Drive can list live files1. 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 mimeTypeLive Google Drive files are returned only for the authenticated tenant; empty state is shown cleanly when Drive has no filesP1Integration
INT-009Google DriveVerify Google Drive handles expired or invalid tokens gracefully1. 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-authenticationAPI returns a safe failure state such as connected: false or a reconnect message; no silent success with invalid credentialsP1Integration
INT-010HubSpotVerify HubSpot can fetch deals1. Connect HubSpot integration<br>2. Navigate to deals<br>3. Click "Sync"Deals imported from HubSpotP1Integration
INT-011GitHubVerify GitHub can fetch repositories1. Connect GitHub integration<br>2. Navigate to repos<br>3. Click "Load Repos"Repositories listed from GitHubP2Integration
INT-012WebhooksVerify webhooks receive external events1. Configure webhook URL<br>2. Trigger event from external system<br>3. Check webhook logEvent received and loggedP1Integration
INT-013Integration HubVerify all 39+ integrations listed1. Navigate to /integrations<br>2. Check integration countAll available integrations displayedP2Functional
INT-014Integration HealthVerify integration health status displayed1. Navigate to integrations<br>2. Check connection statusStatus shows: Connected/Disconnected/ErrorP1Functional

---

7. Sales Hub - COMPREHENSIVE

7.1 Dashboard & Metrics

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-001DashboardVerify dashboard loads with all metrics1. Navigate to /dashboard/sales<br>2. Check all metric cardsAll cards display: Pipeline Value, Active Deals, Win Rate, Weighted ForecastP0Functional
SALES-002Dashboard Stats APIVerify GET /api/sales/dashboard/stats returns data1. GET /api/sales/dashboard/stats<br>2. Check response structureReturns: total_leads, conversion_rate, active_deals_count, pipeline_value, weighted_forecast, high_risk_deals_count, win_rate, key_contacts, deals_by_stageP0Functional
SALES-003Dashboard Stats APIVerify stats API requires workspace_id and tenant_id1. GET /api/sales/dashboard/stats without params<br>2. Check response400 Bad Request or 401 UnauthorizedP0Security
SALES-004Pipeline ValueVerify pipeline value calculation1. Create deals with various values<br>2. Check pipeline value metricPipeline value = sum of all open deal valuesP1Functional
SALES-005Active DealsVerify active deals count1. Create deals in different stages<br>2. Check active deals metricOnly open deals counted (excludes CLOSED_WON, CLOSED_LOST)P1Functional
SALES-006Win RateVerify win rate calculation1. Create won and lost deals<br>2. Check win rate metricWin rate = won_deals / (won_deals + lost_deals)P1Functional
SALES-007Weighted ForecastVerify weighted forecast calculation1. Create deals with different probabilities<br>2. Check weighted forecastWeighted forecast = sum(deal_value * probability/100)P1Functional
SALES-008High Risk DealsVerify high-risk deals detection1. Create deals with health_score < 40<br>2. Check high_risk_deals_countCount matches deals with critical healthP1Functional
SALES-009Deals by StageVerify deals grouped by stage1. Create deals across all stages<br>2. Check deals_by_stage breakdownDeals correctly grouped: DISCOVERY, QUALIFICATION, PROPOSAL, NEGOTIATIONP1Functional
SALES-010Real-time UpdatesVerify dashboard updates in real-time1. Open dashboard<br>2. Create new deal via API<br>3. Wait 5 seconds<br>4. Check dashboardDashboard metrics reflect new dealP1Functional

7.2 Lead Management

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-011Lead IngestionVerify POST /api/sales/leads/ingest creates lead1. POST /api/sales/leads/ingest with valid data<br>2. Check responseLead created with lead_id and ai_scoreP0Functional
SALES-012Lead IngestionVerify lead ingestion requires valid email1. POST with invalid email format<br>2. Check response400 Bad Request with validation errorP0Functional
SALES-013Lead IngestionVerify duplicate lead detection1. POST lead with existing email<br>2. Check responseLead skipped or updated, not duplicatedP1Functional
SALES-014Lead IngestionVerify spam detection works1. POST lead with competitor domain<br>2. Check lead statusLead marked as SPAM, ai_score = 0P1Functional
SALES-015Lead IngestionVerify disposable email detection1. POST lead with disposable email<br>2. Check responseLead rejected or marked as SPAMP1Security
SALES-016AI Lead ScoringVerify high-intent lead scored 80-1001. POST lead with strong buying signals<br>2. Check ai_scoreScore between 80-100, status: QUALIFIEDP0Functional
SALES-017AI Lead ScoringVerify medium-intent lead scored 50-801. POST lead with moderate interest<br>2. Check ai_scoreScore between 50-80, status: NEW or CONTACTEDP1Functional
SALES-018AI Lead ScoringVerify low-intent lead scored <501. POST lead with weak signals<br>2. Check ai_scoreScore < 50, status: NEWP1Functional
SALES-019Lead ListingVerify GET /api/sales/leads returns all leads1. GET /api/sales/leads<br>2. Check responseArray of leads ordered by ai_score descP0Functional
SALES-020Lead ListingVerify leads filtered by tenant1. GET leads for tenant A<br>2. GET leads for tenant BEach tenant sees only their leadsP0Security
SALES-021Lead DetailsVerify lead conversion to deal1. POST /api/sales/leads/{id}/convert<br>2. Check deal creationDeal created, lead marked as is_convertedP1Functional
SALES-022Lead Status UpdateVerify lead status can be updated1. PATCH /api/sales/leads/{id}<br>2. Update status to CONTACTEDStatus updated, timestamp updatedP1Functional
SALES-023Lead DeletionVerify lead can be deleted1. DELETE /api/sales/leads/{id}<br>2. Check databaseLead removed or marked as deletedP1Functional

7.3 Deal Management

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-024Deal CreationVerify deal can be created1. POST /api/sales/deals with valid data<br>2. Check responseDeal created with deal_idP0Functional
SALES-025Deal CreationVerify deal requires required fields1. POST deal without name or value<br>2. Check response400 Bad Request with validation errorP0Functional
SALES-026Deal StagesVerify all deal stages available1. Check deal stage enum/optionsDISCOVERY, QUALIFICATION, PROPOSAL, NEGOTIATION, CLOSED_WON, CLOSED_LOSTP1Functional
SALES-027Deal ProbabilityVerify default probability by stage1. Create deal in DISCOVERY (no probability)<br>2. Check assigned probabilityDISCOVERY: 20%, QUALIFICATION: 40%, PROPOSAL: 60%, NEGOTIATION: 80%P1Functional
SALES-028Deal ListingVerify GET /api/sales/deals returns all deals1. GET /api/sales/deals<br>2. Check responseArray of all deals for tenantP0Functional
SALES-029Deal ListingVerify pipeline endpoint returns open deals1. GET /api/sales/pipeline<br>2. Check responseOnly open deals (excludes CLOSED_WON, CLOSED_LOST)P0Functional
SALES-030Deal DetailsVerify GET /api/sales/deals/{id} returns details1. GET specific deal<br>2. Check responseFull deal details with all fieldsP1Functional
SALES-031Deal UpdateVerify deal can be updated1. PATCH /api/sales/deals/{id}<br>2. Update value or stageChanges saved, updated_at timestampP1Functional
SALES-032Deal Stage ChangeVerify stage change logged as activity1. Update deal stage<br>2. Check activitiesStage change activity logged with descriptionP1Functional
SALES-033Deal DeletionVerify deal can be deleted1. DELETE /api/sales/deals/{id}<br>2. Try to fetch deal404 Not FoundP1Functional

7.4 Deal Health & Risk

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-034Deal HealthVerify GET /api/sales/deals/{id}/health returns score1. GET deal health endpoint<br>2. Check responseReturns: health_score, risk_level, risks[]P0Functional
SALES-035Health ScoreVerify healthy deal has score >701. Create deal with recent activity<br>2. Check health_scoreScore > 70, risk_level: LOWP1Functional
SALES-036Health ScoreVerify stalled deal (14-21 days) has reduced score1. Create deal updated 15 days ago<br>2. Check health_scoreScore 40-70, risk_level: MEDIUMP0Functional
SALES-037Health ScoreVerify very stalled deal (>21 days) has low score1. Create deal updated 25 days ago<br>2. Check health_scoreScore < 40, risk_level: HIGHP0Functional
SALES-038Risk FactorsVerify risk factors identified1. GET health for at-risk deal<br>2. Check risks arraySpecific risks listed: "Stalled for X days", "Low probability", "High value at risk"P1Functional
SALES-039Risk FactorsVerify high-value low-probability deal flagged1. Create deal >$50k with <40% probability<br>2. Check health_scoreScore reduced, risk: "High value at risk"P1Functional

7.5 AI Insights

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-040Insights APIVerify GET /api/sales/insights returns insights1. GET /api/sales/insights<br>2. Check responseReturns insights array with anomaliesP0Functional
SALES-041Stalled DealsVerify stalled deals detected1. Create deal not updated in 14+ days<br>2. GET insights<br>3. Check for stalled deal insightInsight generated with severity and recommendationP0Functional
SALES-042Stalled Deals SeverityVerify critical severity for deals stalled 21+ days1. Create deal stalled 25 days<br>2. Check insight severitySeverity: CRITICALP1Functional
SALES-043Stalled Deals SeverityVerify warning severity for deals stalled 14-21 days1. Create deal stalled 17 days<br>2. Check insight severitySeverity: WARNINGP1Functional
SALES-044High-Value At-RiskVerify high-value low-probability deals detected1. Create deal >$50k, probability <40%<br>2. GET insights<br>3. Check for high-value insightInsight generated with recommendationP1Functional
SALES-045Closing SoonVerify deals closing soon but inactive detected1. Create deal closing in 7 days, no recent activity<br>2. GET insights<br>3. Check for closing soon insightInsight generated to follow upP1Functional
SALES-046Insights StructureVerify insight has all required fields1. GET insights<br>2. Check insight objectContains: anomaly_id, severity, title, description, recommendation, deal_idP1Functional
SALES-047Insights FilteringVerify insights filtered by tenant1. GET insights for tenant A<br>2. GET insights for tenant BEach tenant sees only their insightsP0Security

7.6 Activity Tracking

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-048Activities APIVerify GET /api/sales/activities returns activities1. GET /api/sales/activities<br>2. Check responseReturns activities array with total_countP0Functional
SALES-049Activity TypesVerify all activity types logged1. Create deal, update stage, send email<br>2. GET activities<br>3. Check typesActivities: created, stage_changed, email_sent, call_completedP1Functional
SALES-050Deal Creation ActivityVerify deal creation logged1. Create new deal<br>2. GET activities for dealActivity with type: "created", description includes deal name and valueP1Functional
SALES-051Stage Change ActivityVerify stage change logged1. Update deal stage<br>2. GET activities for dealActivity with type: "stage_changed", from/to stagesP1Functional
SALES-052Email ActivityVerify email logged1. Log email sent activity<br>2. GET activitiesActivity with type: "email_sent"P1Functional
SALES-053Call ActivityVerify call completion logged1. Log call completed activity<br>2. GET activitiesActivity with type: "call_completed"P1Functional
SALES-054Activity PaginationVerify activities support pagination1. GET activities with limit=10, offset=0<br>2. GET with offset=10Correct page of results returnedP1Functional
SALES-055Deal ActivitiesVerify activities can be filtered by deal1. GET /api/sales/activities?deal_id={id}<br>2. Check responseOnly activities for that deal returnedP1Functional
SALES-056Activity TimestampsVerify activities have correct timestamps1. Create activity<br>2. Check timestampTimestamp matches current time in UTCP1Functional
SALES-057Activity DescriptionsVerify activity descriptions are clear1. Check various activity descriptionsDescriptions are human-readable and informativeP2Functional

7.7 Revenue Forecasting

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-058Forecast APIVerify GET /api/sales/forecast returns forecast1. GET /api/sales/forecast?months=3<br>2. Check responseReturns forecast[] and summaryP0Functional
SALES-059Forecast by MonthVerify monthly breakdown accurate1. Create deals with expected_close_date<br>2. GET forecast<br>3. Check monthly valuesDeals grouped by close month correctlyP1Functional
SALES-060Weighted ForecastVerify weighted forecast calculation1. Check monthly weighted_forecastweighted_forecast = sum(deal_value * probability/100) for monthP0Functional
SALES-061Best Case ForecastVerify best case uses 100% probability1. Check monthly best_casebest_case = sum(deal_value) assuming all closeP1Functional
SALES-062Worst Case ForecastVerify worst case uses 0% probability1. Check monthly worst_caseworst_case = 0 or very pessimisticP1Functional
SALES-063Forecast SummaryVerify summary totals accurate1. Check summary objecttotal_weighted_forecast, total_best_case, total_deals, avg_confidenceP1Functional
SALES-064Confidence ScoreVerify confidence calculation1. Check deal confidenceconfidence based on deal age, stage, probabilityP1Functional
SALES-065Forecast MonthsVerify months parameter works1. GET forecast?months=6<br>2. Check array length6 months of forecast returnedP1Functional
SALES-066Forecast EmptyVerify forecast handles no deals1. Delete all deals<br>2. GET forecastReturns empty forecast with zero valuesP1Functional

7.8 Call Processing & Automation

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-067Call IngestionVerify POST /api/sales/calls/process processes transcript1. POST with meeting_id, title, transcript<br>2. Check responseReturns transcript_id, summary, action_itemsP0Functional
SALES-068Call SummaryVerify AI generates call summary1. POST call transcript<br>2. Check summary fieldConcise summary of key discussion pointsP1Functional
SALES-069Objection ExtractionVerify objections extracted from transcript1. POST transcript with objections<br>2. Check objections arrayObjections identified and categorizedP1Functional
SALES-070Action ItemsVerify action items extracted1. POST transcript<br>2. Check action_itemsAction items with owners and deadlinesP1Functional
SALES-071Call ListingVerify GET /api/sales/calls returns transcripts1. GET /api/sales/calls<br>2. Check responseArray of call transcriptsP1Functional
SALES-072Call ListingVerify calls can be filtered by deal1. GET /api/sales/calls?deal_id={id}<br>2. Check responseOnly calls for that deal returnedP1Functional
SALES-073Objection HandlingVerify objections can be tracked1. POST /api/sales/objections<br>2. Check responseObjection categorized with suggested responseP1Functional
SALES-074Objection CategoriesVerify common objection categories1. Check objection categoriesPricing, Timeline, Competition, Technical, Authority, BudgetP1Functional
SALES-075Suggested ResponsesVerify objection responses suggested1. Track objection<br>2. GET suggested responseRebuttal suggestions providedP1Functional

7.9 Commission & Order-to-Cash

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-076Deal WonVerify POST /api/sales/deals/{id}/win works1. POST to win endpoint<br>2. Check deal statusDeal stage = CLOSED_WON, commission createdP0Functional
SALES-077Commission CalculationVerify commission calculated on deal won1. Win deal worth $100,000<br>2. Check commission entryCommission = $10,000 (10% default rate)P1Functional
SALES-078Commission StatusVerify commission starts as ACCRUED1. Win deal<br>2. Check commission statusStatus: ACCRUEDP1Functional
SALES-079Commission ApprovalVerify commission can be approved1. PATCH /api/sales/commissions/{id}/approve<br>2. Check statusStatus: APPROVEDP1Functional
SALES-080Commission PaymentVerify commission can be marked paid1. PATCH /api/sales/commissions/{id}/pay<br>2. Check statusStatus: PAID, paid_at timestamp setP1Functional
SALES-081Order-to-CashVerify invoice created on deal won1. Win deal<br>2. Check Zoho Books integrationInvoice created in Zoho BooksP1Integration
SALES-082Order-to-CashVerify contact created in Zoho Books1. Win deal<br>2. Check Zoho BooksContact created from deal contact infoP1Integration
SALES-083Projected CommissionVerify projected commission calculation1. GET /api/sales/commissions/projected<br>2. Check responseProjected commissions for open dealsP1Functional

7.10 CRM Integration

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-084Salesforce SyncVerify leads can be imported from Salesforce1. Connect Salesforce<br>2. POST /api/sales/integrations/salesforce/import<br>3. Check databaseLeads imported with AI scores appliedP1Integration
SALES-085Salesforce SyncVerify deals can be imported from Salesforce1. Connect Salesforce<br>2. Import opportunities<br>3. Check dealsDeals imported with stage mappingP1Integration
SALES-086Salesforce SyncVerify deal stage mapping1. Import Salesforce opportunity<br>2. Check deal stageSalesforce stages mapped to system stagesP1Integration
SALES-087Salesforce BidirectionalVerify deal changes sync to Salesforce1. Update deal in system<br>2. Check SalesforceOpportunity updated in SalesforceP1Integration
SALES-088HubSpot SyncVerify HubSpot deals can be imported1. Connect HubSpot<br>2. Import deals<br>3. Check databaseDeals imported from HubSpotP1Integration
SALES-089Platform BadgeVerify deals show platform source1. Check deal in pipeline<br>2. Check platform badgeShows: Salesforce, HubSpot, or ManualP1Functional

7.11 Performance & Error Handling

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-090API PerformanceVerify dashboard stats loads in <500ms1. Time GET /api/sales/dashboard/stats<br>2. Check response timeResponse time < 500msP1Performance
SALES-091API PerformanceVerify forecast loads in <1000ms1. Time GET /api/sales/forecast<br>2. Check response timeResponse time < 1000msP1Performance
SALES-092API PerformanceVerify insights loads in <500ms1. Time GET /api/sales/insights<br>2. Check response timeResponse time < 500msP1Performance
SALES-093Error HandlingVerify invalid tenant_id returns 4041. GET with non-existent tenant_id<br>2. Check response404 Not FoundP0Functional
SALES-094Error HandlingVerify missing required fields returns 4001. POST deal without required fields<br>2. Check response400 Bad Request with error detailsP0Functional
SALES-095Rate LimitingVerify API rate limiting enforced1. Make rapid requests<br>2. Check response after limit429 Too Many RequestsP1Security
SALES-096ConcurrencyVerify concurrent requests handled1. Send 10 concurrent requests<br>2. Check responsesAll requests succeed, data consistentP1Performance

7.12 Data Seeding & Testing

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SALES-097Demo DataVerify seed_sales_demo.py creates test data1. Run backend-saas/scripts/seed_sales_demo.py<br>2. Check databaseDemo tenant created with 3 leads, 4 dealsP1Functional
SALES-098Demo DataVerify demo lead scores are correct1. Check demo leads<br>2. Verify ai_score valuesceo@growthcorp.com: 92, marketing@startup.io: 65, competitor@rival.com: 0 (SPAM)P1Functional
SALES-099Demo DataVerify demo deal pipeline values1. Check demo deals<br>2. Verify values and stages4 deals across all stages, total >$500kP1Functional
SALES-100Demo DataVerify stalled deals detected in demo1. GET insights for demo tenant<br>2. Check for stalled deals2 stalled deals identified (20 and 30 days)P1Functional

---

8. Command Centers

8.1 Main Dashboard Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-001Main DashboardVerify dashboard loads with all widgets1. Navigate to /dashboard<br>2. Check all widgetsAll widgets displayed: KPIs, Quick Launch, Industry widgetsP0Functional
CC-002KPI OverviewVerify KPI cards display correct data1. Check Total Cash & Runway<br>2. Check Sales Pipeline<br>3. Check Daily IntelligenceAll KPIs show current valuesP1Functional
CC-003Quick Launch HubVerify all quick launch options work1. Click AI Command<br>2. Click Marketplace<br>3. Click Live ResearchEach option navigates to correct pageP1Functional
CC-004Shopify Lifecycle WidgetVerify widget loads Shopify data1. Check ShopifyLifecycleWidget<br>2. Verify lifecycle stagesAll stages displayed: Discovery, Acquisition, Conversion, etc.P1Functional
CC-005Industrial Lifecycle WidgetVerify widget shows manufacturing ops1. Check IndustrialLifecycleWidget<br>2. Verify stagesStages: Sourcing, Production, QA, LogisticsP1Functional
CC-006Team WidgetVerify MyTeamWidget shows team members1. Check MyTeamWidget<br>2. Verify team listTeam members displayed with statusP1Functional
CC-007Usage IndicatorVerify usage tracks billing1. Check UsageIndicator<br>2. Verify percentageShows current usage vs quotaP1Functional

8.2 Analytics Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-101Analytics DashboardVerify analytics page loads1. Navigate to /dashboard/analytics<br>2. Check page loadDashboard displays with ROI metricsP0Functional
CC-102ROI ConfigurationVerify ROI can be configured1. Set agent time savings rate<br>2. Save configurationROI calculations use configured rateP1Functional
CC-103Savings RecommendationsVerify recommendations generated1. GET /api/billing/recommendations<br>2. Check responseRecommendations for optimizationP1Functional
CC-104Model OptimizationVerify model optimization suggested1. Check recommendations<br>2. Find model optimizationSuggests switching to cost-effective modelsP1Functional
CC-105Archive Dormant AgentsVerify dormant agents identified1. Check recommendations<br>2. Find dormant agentsAgents with no activity >30 days listedP1Functional
CC-106Daily Spend TrendVerify spend chart displays1. Check Daily Spend Trend chart<br>2. Verify data pointsDaily spend over last 30 daysP1Functional
CC-107Workspace DistributionVerify pie chart shows breakdown1. Check Workspace Distribution chart<br>2. Verify segmentsCost breakdown by workspace/agentP1Functional
CC-108Agent Performance TableVerify performance table loads1. Check Agent Performance table<br>2. Verify columnsAgent name, tasks, success rate, cost displayedP1Functional
CC-109Success Rate TrendVerify success rate chart1. Check Success Rate Trend<br>2. Verify trend lineShows success rate over timeP1Functional
CC-110Cost by ModelVerify model cost breakdown1. Check Cost by Model chart<br>2. Verify modelsGPT-4, Claude, etc. with costsP1Functional
CC-111Top Agent SpendersVerify top spenders list1. Check Top Agent Spenders<br>2. Verify rankingAgents sorted by spend descP1Functional

8.3 Marketing Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-201Marketing DashboardVerify marketing page loads1. Navigate to /dashboard/marketing<br>2. Check page loadMarketing dashboard with multi-channel trackingP0Functional
CC-202Shopify IntegrationVerify Shopify data displayed1. Check Shopify integration<br>2. Verify metricsOrders, revenue, traffic shownP1Integration
CC-203Email CampaignsVerify email campaign tracking1. Check email campaigns section<br>2. Verify metricsOpen rate, click rate, conversionsP1Functional
CC-204Social MediaVerify social media metrics1. Check social media section<br>2. Verify platformsFacebook, Instagram, LinkedIn metricsP1Functional
CC-205Google AdsVerify Google Ads data1. Check Google Ads section<br>2. Verify metricsImpressions, clicks, CPC, conversionsP1Integration
CC-206Meta AdsVerify Meta Ads data1. Check Meta Ads section<br>2. Verify metricsFacebook & Instagram ad performanceP1Integration
CC-207Organic SearchVerify SEO metrics displayed1. Check organic search section<br>2. Verify metricsRankings, traffic, backlinksP1Functional
CC-208Marketing ROIVerify ROI calculations accurate1. Check MarketingROIView<br>2. Verify ROI percentageROI = (revenue - spend) / spend * 100P1Functional
CC-209High-Intent LeadsVerify high-intent lead scoring1. Check leads section<br>2. Verify scoringLeads scored by buying intentP1Functional
CC-210Marketing AgentsVerify marketing agents listed1. Check agents grid<br>2. Verify agent typesShopify, Email, Social, GMB/SEO agentsP1Functional

8.4 Industrial Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-301Industrial DashboardVerify industrial page loads1. Navigate to /dashboard/industrial<br>2. Check page loadIndustrial dashboard with lifecycle stagesP0Functional
CC-302Strategic SourcingVerify sourcing stage displayed1. Check sourcing stage<br>2. Verify metricsSuppliers, lead times, costsP1Functional
CC-303Production FlowVerify production stage1. Check production stage<br>2. Verify metricsOutput, efficiency, downtimeP1Functional
CC-304Quality AssuranceVerify QA stage1. Check QA stage<br>2. Verify metricsDefect rate, inspections, passesP1Functional
CC-305Smart LogisticsVerify logistics stage1. Check logistics stage<br>2. Verify metricsShipments, tracking, delivery timesP1Functional
CC-306Swarm Activity FeedVerify activity feed displays1. Check activity feed<br>2. Verify actionsReal-time agent actions with timestampsP1Functional
CC-307Force OptimizationVerify optimization trigger works1. Click "Force Optimization"<br>2. Check responseOptimization cycle initiatedP1Functional
CC-308Industrial ROIVerify ROI calculations1. Check IndustrialROIView<br>2. Verify ROIEfficiency gains, cost savingsP1Functional
CC-309Activity LoggingVerify actions logged with status1. Perform action<br>2. Check feedAction shown with success/failure indicatorP1Functional

8.5 Shopify Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-401Shopify DashboardVerify Shopify page loads1. Navigate to /dashboard/shopify<br>2. Check page loadShopify command center with e-commerce lifecycleP0Functional
CC-402Discovery PhaseVerify discovery stage1. Check discovery phase<br>2. Verify metricsMarket research, trends, opportunitiesP1Functional
CC-403Acquisition PhaseVerify acquisition stage1. Check acquisition stage<br>2. Verify metricsTraffic sources, conversion ratesP1Functional
CC-404Conversion PhaseVerify conversion stage1. Check conversion stage<br>2. Verify metricsAdd to cart, checkout completionP1Functional
CC-405Fulfillment PhaseVerify fulfillment stage1. Check fulfillment stage<br>2. Verify metricsOrders shipped, delivery timesP1Functional
CC-406Retention PhaseVerify retention stage1. Check retention stage<br>2. Verify metricsRepeat purchases, LTVP1Functional
CC-407Analytics PhaseVerify analytics stage1. Check analytics phase<br>2. Verify metricsPerformance reports, insightsP1Functional
CC-408Shopify SwarmVerify swarm status displayed1. GET /api/proxy/shopify/swarm/status<br>2. Check responseSwarm status: active/idle, last runP1Functional
CC-409Agent Activity FeedVerify feed shows store actions1. Check ShopifyAgentFeed<br>2. Verify actionsStore automation actions loggedP1Functional
CC-410Connection StatusVerify Shopify connection check1. Check connection indicator<br>2. Verify statusShows: Connected/DisconnectedP1Functional

8.6 Financial Forensics Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-501Forensics DashboardVerify forensics page loads1. Navigate to /dashboard/forensics<br>2. Check page loadForensics dashboard with 3 modulesP0Functional
CC-502Vendor WatchVerify vendor drift detected1. GET /api/business-health/forensics/vendor-drift<br>2. Check responseVendors with increasing costs listedP1Functional
CC-503Vendor Drift AlertVerify drift threshold works1. Set vendor cost increase >20%<br>2. Check alertsVendor flagged with cost increase %P1Functional
CC-504Smart PricingVerify pricing opportunities identified1. GET /api/business-health/forensics/pricing-opportunities<br>2. Check responseProducts with pricing potential listedP1Functional
CC-505Pricing RecommendationsVerify margin analysis1. Check pricing opportunities<br>2. Verify margin dataCurrent margin vs potentialP1Functional
CC-506Subscription WasteVerify unused SaaS detected1. GET /api/business-health/forensics/subscription-waste<br>2. Check responseUnused subscriptions identifiedP1Functional
CC-507Subscription CancellationVerify cancel suggestions provided1. Check subscription waste<br>2. Verify suggestionsCancel recommendations with savingsP1Functional
CC-508Cost AggregationVerify costs aggregated correctly1. Check forensics data<br>2. Verify totalsMonthly/quarterly cost totalsP1Functional

8.7 Owner Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-601Owner DashboardVerify owner page loads1. Navigate to /dashboard/owner<br>2. Check page loadOwner dashboard with business insightsP0Functional
CC-602Daily BriefingVerify AI briefing generated1. Check DailyBriefingCard<br>2. Verify contentPersonalized business insightsP1Functional
CC-603Health MetricsVerify health metrics grid1. Check HealthMetricsGrid<br>2. Verify metricsKPIs across all areasP1Functional
CC-604Business Health APIVerify health data returned1. GET /api/business-health/dashboard<br>2. Check responseOverall health score and metricsP1Functional
CC-605Decision SimulatorVerify simulator available1. Check for Decision Simulator<br>2. Verify statusShows "Coming Soon" or functionalP2Functional

8.8 Risk & Resilience Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-701Risk DashboardVerify risk page loads1. Navigate to /dashboard/risk<br>2. Check page loadRisk dashboard with 4 modulesP0Functional
CC-702Churn PredictionVerify churn predictions generated1. GET /api/business-health/risk/churn-predictions<br>2. Check responseCustomers at risk with probabilityP1Functional
CC-703Churn ProbabilityVerify probability scores accurate1. Check churn predictions<br>2. Verify scoresScores 0-100%, high risk >70%P1Functional
CC-704Financial RiskVerify financial risk detection1. GET /api/business-health/risk/financial-risk<br>2. Check responseFraud alerts, AR delaysP1Functional
CC-705Fraud DetectionVerify fraud alerts work1. Check financial risk<br>2. Verify fraud alertsSuspicious transactions flaggedP1Functional
CC-706AR DelaysVerify AR delay predictions1. Check financial risk<br>2. Verify AR delaysOverdue invoices predictedP1Functional
CC-707Growth ReadinessVerify growth constraints identified1. GET /api/business-health/risk/growth-constraints<br>2. Check responseBottlenecks listedP1Functional
CC-708Security AuditVerify desktop security monitor1. Check DesktopSecurityAudit<br>2. Verify statusSecurity status and issuesP1Functional

8.9 Support Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-801Support DashboardVerify support page loads1. Navigate to /dashboard/support<br>2. Check page loadSupport dashboard with ticketsP0Functional
CC-802Ticket CreationVerify ticket can be created1. POST /api/support/tickets<br>2. Check responseTicket created with ticket_idP1Functional
CC-803Ticket ListingVerify tickets listed1. GET /api/support/tickets<br>2. Check responseArray of support ticketsP1Functional
CC-804Ticket DetailsVerify ticket details load1. GET /api/support/tickets/{id}<br>2. Check responseFull ticket details with historyP1Functional
CC-805Ticket PriorityVerify priority badges work1. Check ticket list<br>2. Verify priority displayHigh/Low priority badges shownP1Functional
CC-806AI ResponsesVerify AI generates responses1. Open ticket<br>2. Click "Generate AI Response"<br>3. Check responseContextual response generatedP1Functional
CC-807Real-time UpdatesVerify ticket status updates1. Update ticket status<br>2. Check UIStatus updates in real-timeP1Functional
CC-808Ticket HistoryVerify ticket detail shows history1. Open ticket<br>2. Check TicketDetailHistory of all changes shownP1Functional

8.10 Skills Marketplace Command Center

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-901Skills DashboardVerify skills page loads1. Navigate to /dashboard/skills<br>2. Check page loadSkills marketplace with available skillsP0Functional
CC-902Skill DiscoveryVerify skills can be browsed1. Check skills grid<br>2. Verify filtersSkills displayed with filtersP1Functional
CC-903Skill AssignmentVerify skill can be assigned to agent1. Select skill<br>2. Click "Assign"<br>3. Choose agentSkill assigned to agentP1Functional
CC-904Skill TypesVerify all skill types listed1. Check skill type badges<br>2. Verify typesAPI, Function, Script, DockerP1Functional
CC-905Public SkillsVerify public skills visible1. Filter by public<br>2. Check resultsPublic marketplace skills shownP1Functional
CC-906Private SkillsVerify private skills shown1. Filter by private<br>2. Check resultsTenant-specific skills shownP1Functional
CC-907Skill CreationVerify skill can be created1. Navigate to /dashboard/skills/create<br>2. Create skillSkill added to marketplaceP1Functional

8.11 Additional Component Command Centers

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
CC-1001Budget Command CenterVerify budget dashboard works1. Access BudgetCommandCenter component<br>2. Check dataBudget tracking displayedP2Functional
CC-1002Communication Command CenterVerify communication dashboard works1. Access CommunicationCommandCenter<br>2. Check featuresTeam messaging, email analyticsP2Functional
CC-1003Finance Command CenterVerify finance dashboard works1. Access FinanceCommandCenter<br>2. Check featuresAccounting, invoicing, reportsP2Functional
CC-1004Knowledge Command CenterVerify knowledge dashboard works1. Access KnowledgeCommandCenter<br>2. Check featuresDocumentation, KB, AI searchP2Functional
CC-1005Project Command CenterVerify project dashboard works1. Access ProjectCommandCenter<br>2. Check featuresProjects, tasks, milestonesP2Functional
CC-1006Sales Command Center ComponentVerify sales component works1. Access SalesCommandCenter component<br>2. Check featuresPipeline, CRM, dealsP2Functional

---

9. Security & Governance

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SEC-001Rate LimitingVerify rate limit enforced on API1. Make rapid requests to API endpoint<br>2. Check response after threshold429 Too Many Requests returnedP0Security
SEC-002Rate LimitingVerify rate limit is per-tenant1. Make requests from tenant A<br>2. Make requests from tenant B<br>3. Check limitsEach tenant has independent rate limitP0Security
SEC-003Agent GovernanceVerify governance rules block unauthorized actions1. Create governance rule blocking data deletion<br>2. Attempt deletion with agentAction blocked, rule violation loggedP0Security
SEC-004Agent GovernanceVerify governance logs are auditable1. Check governance audit logs<br>2. Filter by agent, action, dateAll governance decisions logged with timestampsP1Security
SEC-005BYOKVerify tenant can provide own API key1. Navigate to /settings/security<br>2. Enter OpenAI API key<br>3. SaveKey encrypted and stored in tenant_settingsP1Security
SEC-006BYOKVerify tenant API key is used for embeddings1. Set tenant API key<br>2. Perform action requiring embeddings<br>3. Check API usageTenant's key used, not platform keyP1Security
SEC-007Audit LoggingVerify all user actions are logged1. Perform any action (create agent, etc.)<br>2. Check audit logsAction logged with user, timestamp, detailsP0Security
SEC-008Audit LoggingVerify audit logs are tamper-proof1. Attempt to modify audit log entry<br>2. Check resultModification denied or loggedP1Security
SEC-009RBACVerify role-based access control works1. Create user with Viewer role<br>2. Attempt admin actionAccess denied, 403 ForbiddenP0Security
SEC-010RBACVerify permissions can be customized1. Create custom role<br>2. Assign specific permissions<br>3. Assign to user<br>4. Test accessUser has exactly assigned permissionsP1Functional
SEC-011Data EncryptionVerify sensitive data encrypted at rest1. Check database for API keys<br>2. Check S3 for sensitive filesData encrypted, not plaintextP0Security
SEC-012Data EncryptionVerify data encrypted in transit1. Check API connection<br>2. Check database connectionTLS/SSL enforcedP0Security

---

10. Package Management

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
PKG-001Python WhitelistVerify approved package can be installed1. Request installation of whitelisted package<br>2. Check installationPackage installed successfullyP1Functional
PKG-002Python WhitelistVerify non-whitelisted package blocked1. Request installation of non-whitelisted package<br>2. Check resultInstallation blocked, approval requestedP0Security
PKG-003Python WhitelistVerify vulnerability scan runs on install1. Install whitelisted package<br>2. Check scan resultspip-audit or Snyk scan executedP1Security
PKG-004Python WhitelistVerify vulnerable package version blocked1. Attempt to install package with known vulnerability<br>2. Check resultInstallation blocked, vulnerability reportedP0Security
PKG-005NPM IntegrationVerify NPM package can be installed1. Request NPM package installation<br>2. Check resultPackage installed in Docker containerP1Functional
PKG-006NPM IntegrationVerify NPM audit runs on install1. Install NPM package<br>2. Check audit resultsnpm audit executed, vulnerabilities reportedP1Security
PKG-007Package IsolationVerify packages isolated per skill1. Install package for skill A<br>2. Check skill B environmentPackage not available to skill BP1Security
PKG-008Package ApprovalVerify admin can approve package1. Navigate to package whitelist<br>2. Submit package for approval<br>3. Admin approves<br>4. Install packagePackage added to whitelist, installation succeedsP1Functional
PKG-009postinstall ProtectionVerify malicious postinstall blocked1. Attempt package with suspicious postinstall<br>2. Check executionpostinstall executed in isolated containerP0Security

---

11. Billing & Pricing

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
BILL-001Pricing TiersVerify all 4 tiers available1. Navigate to /settings/billing<br>2. Check upgrade optionsFree, Solo ($19), Team ($79), Enterprise ($299) shownP1Functional
BILL-002Usage TrackingVerify agent usage tracked1. Execute agent tasks<br>2. Check usage dashboardTask count incremented, quota updatedP0Functional
BILL-003Usage LimitsVerify free tier limit of 50/day enforced1. Execute 50 agent tasks on free tier<br>2. Attempt 51st taskError: "Daily limit reached"P0Functional
BILL-004Usage LimitsVerify solo tier limit of 500/day1. Upgrade to Solo tier<br>2. Execute 500 agent tasks<br>3. Attempt 501st taskError: "Daily limit reached"P1Functional
BILL-005Billing CycleVerify billing cycle is monthly1. Check billing start date<br>2. Wait one month<br>3. Check invoiceInvoice generated for monthly periodP1Functional
BILL-006Invoice GenerationVerify invoice includes line items1. Navigate to billing<br>2. View latest invoiceInvoice shows: Plan, usage, total amountP1Functional
BILL-007Payment ProcessingVerify payment method can be added1. Navigate to billing<br>2. Click "Add Payment Method"<br>3. Enter card details<br>4. SavePayment method added and verifiedP0Functional
BILL-008Payment ProcessingVerify payment fails with invalid card1. Attempt to add invalid card<br>2. Check resultError: "Invalid payment method"P1Functional
BILL-009Subscription UpgradeVerify upgrade takes effect immediately1. Upgrade from Free to Solo<br>2. Check agent limitLimit increased to 10 agents immediatelyP1Functional
BILL-010Subscription DowngradeVerify downgrade takes effect next cycle1. Downgrade from Team to Solo<br>2. Check current limitsFull Team features until cycle endP1Functional
BILL-011Enterprise PlanVerify enterprise allows unlimited agents1. Subscribe to Enterprise<br>2. Create agents beyond 25No agent limit enforcedP1Functional

---

12. Admin & Monitoring

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
ADM-001Admin DashboardVerify admin dashboard accessible to admins1. Login as admin user<br>2. Navigate to /adminDashboard loads with admin controlsP0Functional
ADM-002Admin DashboardVerify non-admin cannot access admin dashboard1. Login as regular user<br>2. Navigate to /admin403 Forbidden or redirectP0Security
ADM-003User ManagementVerify admin can view all users1. Navigate to admin/users<br>2. Check user listAll users across tenants displayedP1Functional
ADM-004User ManagementVerify admin can deactivate user1. Select user<br>2. Click "Deactivate"<br>3. ConfirmUser deactivated, cannot loginP1Functional
ADM-005Tenant ManagementVerify admin can view all tenants1. Navigate to admin/tenants<br>2. Check tenant listAll tenants displayed with metricsP1Functional
ADM-006Tenant ManagementVerify admin can suspend tenant1. Select tenant<br>2. Click "Suspend"<br>3. ConfirmTenant suspended, all access blockedP1Functional
ADM-007System HealthVerify health metrics displayed1. Navigate to admin/health<br>2. Check metricsCPU, memory, database, Redis status shownP1Functional
ADM-008System LogsVerify system logs accessible1. Navigate to admin/logs<br>2. Apply filtersLogs displayed with filtering optionsP1Functional
ADM-009Governance PanelVerify governance rules manageable1. Navigate to governance panel<br>2. Create/edit/delete ruleRules CRUD operations workP1Functional
ADM-010Interventions FeedVerify interventions displayed in real-time1. Trigger agent intervention<br>2. Check interventions feedIntervention appears with detailsP1Functional

---

13. Dashboard & Analytics

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
DASH-001Main DashboardVerify dashboard loads for authenticated user1. Login to application<br>2. Navigate to /dashboardDashboard displays with widgetsP0Functional
DASH-002Main DashboardVerify dashboard shows agent summary1. Check dashboard agents widgetTotal agents, active agents, by maturity shownP1Functional
DASH-003Industry DashboardVerify industry-specific dashboards load1. Navigate to /dashboard/marketing<br>2. Check contentMarketing-specific metrics and tools shownP1Functional
DASH-004Analytics DashboardVerify analytics page displays charts1. Navigate to /analytics<br>2. Check visualizationsCharts for agent performance, usage, etc.P1Functional
DASH-005Analytics DashboardVerify date range filter works1. Select custom date range<br>2. Apply filterCharts update for selected periodP1Functional
DASH-006Analytics DashboardVerify data can be exported1. Click "Export"<br>2. Select format (CSV/JSON)<br>3. DownloadFile downloaded with correct dataP1Functional

---

14. Marketplace

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
MKT-001Skill MarketplaceVerify marketplace displays skills1. Navigate to /marketplace<br>2. Browse skillsSkills listed with descriptions, ratingsP1Functional
MKT-002Skill MarketplaceVerify skills can be filtered1. Apply filters (category, rating, price)<br>2. Check resultsFiltered skills displayedP1Functional
MKT-003Skill PurchaseVerify free skill can be installed1. Select free skill<br>2. Click "Install"<br>3. ConfirmSkill added to tenant, ready to useP1Functional
MKT-004Skill PurchaseVerify paid skill requires payment1. Select paid skill<br>2. Click "Purchase"<br>3. Check resultPayment flow initiatedP1Functional
MKT-005Skill SubmissionVerify custom skill can be submitted1. Navigate to /canvas-skills/marketplace/submit<br>2. Upload skill<br>3. Enter details<br>4. SubmitSkill submitted for reviewP1Functional
MKT-006Skill RatingVerify skills can be rated1. Use installed skill<br>2. Submit rating and review<br>3. Check marketplaceRating updated, review displayedP1Functional
MKT-007Canvas MarketplaceVerify canvas components can be shared1. Create canvas component<br>2. Submit to marketplace<br>3. Check listingComponent appears in marketplaceP2Functional

---

15. Settings & Configuration

Test IDFeatureTest CaseTest StepsExpected ResultPriorityType
SET-001Account SettingsVerify user profile can be updated1. Navigate to /settings/account<br>2. Update name, email<br>3. SaveChanges saved and reflectedP1Functional
SET-002Account SettingsVerify password can be changed1. Navigate to /settings/account<br>2. Enter current password<br>3. Enter new password<br>4. SavePassword updated, must re-loginP1Functional
SET-003Notification SettingsVerify notification preferences work1. Navigate to /settings/notifications<br>2. Toggle notification types<br>3. SavePreferences saved, notifications updatedP1Functional
SET-004Security SettingsVerify 2FA can be enabled/disabled1. Navigate to /settings/security<br>2. Toggle 2FA<br>3. Follow setup/disable steps2FA status updatedP1Security
SET-005Governance SettingsVerify governance rules can be configured1. Navigate to /settings/governance<br>2. Create rule<br>3. Set conditions<br>4. SaveRule created and enforcedP1Functional
SET-006SSO ConfigurationVerify SSO can be configured1. Navigate to /settings/sso<br>2. Enter SSO provider details<br>3. SaveSSO configuration savedP1Integration
SET-007Role ManagementVerify custom roles can be created1. Navigate to /settings/roles<br>2. Click "New Role"<br>3. Set permissions<br>4. SaveRole created, can assign to usersP1Functional

---

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 AreaTest CountCoverage
**Sales Hub**100Comprehensive
**Command Centers**106Comprehensive
Authentication & Authorization15Complete
Agent Management18Complete
Multi-Tenancy10Complete
Canvas System14Complete
Brain Systems15Complete
Integrations14Complete
Security & Governance12Complete
Package Management9Complete
Billing & Pricing11Complete
Admin & Monitoring10Complete
Dashboard & Analytics6Complete
Marketplace7Complete
Settings & Configuration7Complete

---

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.py

Frontend Tests

# Run all frontend tests
npm run test

# Run E2E tests
npm run test:e2e

# Run coverage
npm run test:coverage

API 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