# 5. AI Study Companion / Emotional Intelligence — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: ai_study_companion.md — every feature, sub-feature, and rule covered

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 5.1 Mood Tracking Configuration | Mood check-in frequency (per session, daily, on-demand) | TC-SA-AI-18-001 |
| 5.1 Mood Tracking Configuration | Mood scale (emoji, 1-5, labeled moods) | TC-SA-AI-18-002 |
| 5.1 Mood Tracking Configuration | Mood input methods (tap, text, voice) | TC-SA-AI-18-003 |
| 5.1 Mood Tracking Configuration | Mood history retention (per student, per period) | TC-SA-AI-18-004 |
| 5.1 Mood Tracking Configuration | Mood trend view (over time, per subject) | TC-SA-AI-18-005 |
| 5.1 Mood Tracking Configuration | Rule: skipped check-in recorded as skipped | TC-SA-AI-18-006 |
| 5.1 Mood Tracking Configuration | Rule: no mood data → no trend | TC-SA-AI-18-007 |
| 5.1 Mood Tracking Configuration | Rule: older data aggregated not deleted | TC-SA-AI-18-008 |
| 5.1 Mood Tracking Configuration | Audit logging of mood tracking configuration | TC-SA-AI-18-009 |
| 5.2 Burnout Detection Thresholds | Burnout indicators | TC-SA-AI-19-001 |
| 5.2 Burnout Detection Thresholds | Threshold per indicator | TC-SA-AI-19-002 |
| 5.2 Burnout Detection Thresholds | Composite burnout score | TC-SA-AI-19-003 |
| 5.2 Burnout Detection Thresholds | Detection window (7-day, 14-day rolling) | TC-SA-AI-19-004 |
| 5.2 Burnout Detection Thresholds | Burnout severity levels (mild, moderate, severe) | TC-SA-AI-19-005 |
| 5.2 Burnout Detection Thresholds | Rule: single indicator does not trigger alert | TC-SA-AI-19-006 |
| 5.2 Burnout Detection Thresholds | Rule: insufficient data → not assessed | TC-SA-AI-19-007 |
| 5.2 Burnout Detection Thresholds | Rule: alert at most once per severity per window | TC-SA-AI-19-008 |
| 5.2 Burnout Detection Thresholds | Audit logging of burnout detection thresholds | TC-SA-AI-19-009 |
| 5.3 Break Suggestion Rules | Break triggers | TC-SA-AI-20-001 |
| 5.3 Break Suggestion Rules | Break duration (5/10/20 min) | TC-SA-AI-20-002 |
| 5.3 Break Suggestion Rules | Break content (stretch, breathing, message, free) | TC-SA-AI-20-003 |
| 5.3 Break Suggestion Rules | Break frequency limits | TC-SA-AI-20-004 |
| 5.3 Break Suggestion Rules | Break acceptance tracking | TC-SA-AI-20-005 |
| 5.3 Break Suggestion Rules | Rule: at frequency limit suppressed not queued | TC-SA-AI-20-006 |
| 5.3 Break Suggestion Rules | Rule: dismissed not re-suggested same session | TC-SA-AI-20-007 |
| 5.3 Break Suggestion Rules | Rule: never interrupts assessment/live session | TC-SA-AI-20-008 |
| 5.3 Break Suggestion Rules | Audit logging of break suggestion rules | TC-SA-AI-20-009 |
| 5.4 Counselor Connection Triggers | Trigger conditions | TC-SA-AI-21-001 |
| 5.4 Counselor Connection Triggers | Connection routing | TC-SA-AI-21-002 |
| 5.4 Counselor Connection Triggers | Consent requirements | TC-SA-AI-21-003 |
| 5.4 Counselor Connection Triggers | Follow-up tracking | TC-SA-AI-21-004 |
| 5.4 Counselor Connection Triggers | Trigger history (immutable) | TC-SA-AI-21-005 |
| 5.4 Counselor Connection Triggers | Rule: student-requested always succeeds | TC-SA-AI-21-006 |
| 5.4 Counselor Connection Triggers | Rule: minor requires parent consent, held not dropped | TC-SA-AI-21-007 |
| 5.4 Counselor Connection Triggers | Rule: every trigger recorded, history immutable | TC-SA-AI-21-008 |
| 5.4 Counselor Connection Triggers | Audit logging of counselor connection triggers | TC-SA-AI-21-009 |
| 5.5 Motivational Content Mapping | Motivational content types | TC-SA-AI-22-001 |
| 5.5 Motivational Content Mapping | Mood-to-content mapping | TC-SA-AI-22-002 |
| 5.5 Motivational Content Mapping | Content frequency | TC-SA-AI-22-003 |
| 5.5 Motivational Content Mapping | Content effectiveness tracking | TC-SA-AI-22-004 |
| 5.5 Motivational Content Mapping | Content library management | TC-SA-AI-22-005 |
| 5.5 Motivational Content Mapping | Rule: no mapped content → default fallback | TC-SA-AI-22-006 |
| 5.5 Motivational Content Mapping | Rule: retired not served to new sessions | TC-SA-AI-22-007 |
| 5.5 Motivational Content Mapping | Rule: frequency limit prevents overload | TC-SA-AI-22-008 |
| 5.5 Motivational Content Mapping | Audit logging of motivational content mapping | TC-SA-AI-22-009 |

## 5.1 Mood Tracking Configuration

### TC-SA-AI-18-001 — Mood check-in frequency (per session, daily, on-demand)
**Type:** Positive
**Covers:** 5.1 → Mood check-in frequency
**Preconditions:** A Super Admin account is active; the AI Study Companion feature is enabled.
**Steps:**
1. As a Super Admin, open AI Feature Configuration → AI Study Companion → Mood Tracking.
2. Set the mood check-in frequency (per session, daily, on-demand).
3. Verify check-ins prompt at the configured frequency.
**Expected Result:** Mood check-in frequency — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-18-002 — Mood scale (emoji, 1-5, labeled moods)
**Type:** Positive
**Covers:** 5.1 → Mood scale
**Preconditions:** The AI Study Companion feature is enabled.
**Steps:**
1. Configure the mood scale (emoji scale, 1-5, labeled moods).
2. Verify check-ins use the configured scale.
**Expected Result:** Mood scale — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-003 — Mood input methods (tap, text, voice)
**Type:** Positive
**Covers:** 5.1 → Mood input methods
**Preconditions:** The AI Study Companion feature is enabled.
**Steps:**
1. Define the mood input methods (tap, text, voice).
2. Verify check-ins accept the configured input methods.
**Expected Result:** Mood input methods — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-004 — Mood history retention (per student, per period)
**Type:** Positive
**Covers:** 5.1 → Mood history retention
**Preconditions:** The AI Study Companion feature is enabled.
**Steps:**
1. Set the mood history retention per student and period.
2. Verify mood history is retained per the configured period.
**Expected Result:** Mood history retention — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-005 — Mood trend view (over time, per subject)
**Type:** Positive
**Covers:** 5.1 → Mood trend view
**Preconditions:** Mood data exists.
**Steps:**
1. Enable the mood trend view.
2. Verify the trend is shown over time and per subject.
**Expected Result:** Mood trend view — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-006 — Rule: skipped check-in recorded as skipped
**Type:** Edge
**Covers:** 5.1 → Rule: skipped
**Preconditions:** A mood check-in is prompted.
**Steps:**
1. Skip the mood check-in.
2. Verify it is recorded as skipped (not a neutral mood) and does not skew the trend.
**Expected Result:** A skipped mood check-in is recorded as skipped (not as a neutral mood); it does not skew the trend — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-007 — Rule: no mood data → no trend
**Type:** Edge
**Covers:** 5.1 → Rule: no data
**Preconditions:** A student has no mood data.
**Steps:**
1. View the student's mood trend.
2. Verify no trend is shown (not a default mood).
**Expected Result:** A student with no mood data shows no trend (not a default mood) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-008 — Rule: older data aggregated not deleted
**Type:** Edge
**Covers:** 5.1 → Rule: aggregated
**Preconditions:** Mood data older than the retention period exists.
**Steps:**
1. Advance past the retention period.
2. Verify older data is aggregated, not deleted, for trend continuity.
**Expected Result:** The mood history is retained per the configured period; older data is aggregated, not deleted, for trend continuity — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-18-009 — Audit logging of mood tracking configuration
**Type:** Positive
**Covers:** 5.1 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a mood tracking setting.
2. Verify the change is recorded in the audit log with the setting, the change, and the timestamp.
**Expected Result:** Audit logging of mood tracking configuration — delivered exactly as documented.
**Priority:** Medium

## 5.2 Burnout Detection Thresholds

### TC-SA-AI-19-001 — Burnout indicators
**Type:** Positive
**Covers:** 5.2 → Burnout indicators
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open AI Feature Configuration → AI Study Companion → Burnout Detection.
2. Set the burnout indicators (study hours, sleep proxy, mood decline, performance drop, session abandonment).
3. Verify the indicators are tracked.
**Expected Result:** Burnout indicators — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-19-002 — Threshold per indicator
**Type:** Positive
**Covers:** 5.2 → Threshold per indicator
**Preconditions:** Burnout indicators are set.
**Steps:**
1. Configure the threshold per indicator (trigger level).
2. Verify indicators are evaluated against the configured thresholds.
**Expected Result:** Threshold per indicator — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-19-003 — Composite burnout score
**Type:** Positive
**Covers:** 5.2 → Composite burnout score
**Preconditions:** Thresholds per indicator are set.
**Steps:**
1. Define the composite burnout score (weighted combination of indicators).
2. Verify the composite score is computed correctly.
**Expected Result:** Composite burnout score — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-19-004 — Detection window (7-day, 14-day rolling)
**Type:** Positive
**Covers:** 5.2 → Detection window
**Preconditions:** The composite burnout score is defined.
**Steps:**
1. Set the detection window (7-day, 14-day rolling).
2. Verify burnout is assessed over the configured window.
**Expected Result:** Detection window — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-19-005 — Burnout severity levels (mild, moderate, severe)
**Type:** Positive
**Covers:** 5.2 → Severity levels
**Preconditions:** The detection window is set.
**Steps:**
1. Set the severity levels (mild, moderate, severe).
2. Verify burnout is classified by severity.
**Expected Result:** Burnout severity levels — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-19-006 — Rule: single indicator does not trigger alert
**Type:** Edge
**Covers:** 5.2 → Rule: composite required
**Preconditions:** A single indicator is at threshold but the composite score is below the severity threshold.
**Steps:**
1. Evaluate the student for burnout.
2. Verify no burnout alert is triggered.
**Expected Result:** A single indicator at threshold does not trigger a burnout alert; the composite score must cross the severity threshold — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-19-007 — Rule: insufficient data → not assessed
**Type:** Edge
**Covers:** 5.2 → Rule: insufficient data
**Preconditions:** A student has insufficient data in the window.
**Steps:**
1. Evaluate the student for burnout.
2. Verify the student is not assessed (no false positives from sparse data).
**Expected Result:** A student with insufficient data in the window is not assessed for burnout (no false positives from sparse data) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-19-008 — Rule: alert at most once per severity per window
**Type:** Edge
**Covers:** 5.2 → Rule: once per window
**Preconditions:** A student is in a burnout state for a severity level.
**Steps:**
1. Keep the student in the same state across the detection window.
2. Verify a burnout alert is raised at most once per severity level per detection window.
**Expected Result:** A burnout alert is raised at most once per severity level per detection window (no repeated alerts for the same state) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-19-009 — Audit logging of burnout detection thresholds
**Type:** Positive
**Covers:** 5.2 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a burnout detection threshold.
2. Verify the change is recorded in the audit log with the threshold, the change, and the timestamp.
**Expected Result:** Audit logging of burnout detection thresholds — delivered exactly as documented.
**Priority:** Medium

## 5.3 Break Suggestion Rules

### TC-SA-AI-20-001 — Break triggers
**Type:** Positive
**Covers:** 5.3 → Break triggers
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open AI Feature Configuration → AI Study Companion → Break Suggestions.
2. Set the break triggers (continuous study time, mood decline, performance drop in session).
3. Verify breaks are suggested on the configured triggers.
**Expected Result:** Break triggers — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-002 — Break duration (5/10/20 min)
**Type:** Positive
**Covers:** 5.3 → Break duration
**Preconditions:** Break triggers are set.
**Steps:**
1. Configure the break duration (short 5 min, medium 10 min, long 20 min).
2. Verify suggested breaks use the configured durations.
**Expected Result:** Break duration — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-003 — Break content (stretch, breathing, message, free)
**Type:** Positive
**Covers:** 5.3 → Break content
**Preconditions:** Break duration is set.
**Steps:**
1. Define the break content (stretch, breathing exercise, motivational message, free break).
2. Verify suggested breaks show the configured content.
**Expected Result:** Break content — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-004 — Break frequency limits
**Type:** Positive
**Covers:** 5.3 → Break frequency limits
**Preconditions:** Break content is defined.
**Steps:**
1. Set the break frequency limits (max breaks per hour, per session).
2. Verify breaks respect the frequency limits.
**Expected Result:** Break frequency limits — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-005 — Break acceptance tracking
**Type:** Positive
**Covers:** 5.3 → Break acceptance tracking
**Preconditions:** Break suggestions are being made.
**Steps:**
1. Enable the acceptance tracking.
2. Verify break responses (accepted, dismissed, ignored) are tracked.
**Expected Result:** Break acceptance tracking — delivered exactly as documented.
**Priority:** Low

### TC-SA-AI-20-006 — Rule: at frequency limit suppressed not queued
**Type:** Edge
**Covers:** 5.3 → Rule: suppressed
**Preconditions:** The break frequency limit is reached.
**Steps:**
1. Trigger another break condition.
2. Verify the break suggestion is suppressed for the remainder of the window (not queued).
**Expected Result:** A break suggestion at the frequency limit is suppressed for the remainder of the window; it is not queued — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-007 — Rule: dismissed not re-suggested same session
**Type:** Edge
**Covers:** 5.3 → Rule: dismissed
**Preconditions:** A break for a trigger was dismissed.
**Steps:**
1. Re-trigger the same condition in the same session.
2. Verify the break is not re-suggested.
**Expected Result:** A dismissed break is not re-suggested for the same trigger within the same session — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-20-008 — Rule: never interrupts assessment/live session
**Type:** Negative
**Covers:** 5.3 → Rule: no interruption
**Preconditions:** An active assessment or live session is in progress.
**Steps:**
1. Trigger a break condition.
2. Verify the break suggestion does not interrupt the assessment/live session and is deferred to the next safe point.
**Expected Result:** A break suggestion never interrupts an active assessment or live session; it is deferred to the next safe point — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-20-009 — Audit logging of break suggestion rules
**Type:** Positive
**Covers:** 5.3 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a break suggestion rule.
2. Verify the change is recorded in the audit log with the rule, the change, and the timestamp.
**Expected Result:** Audit logging of break suggestion rules — delivered exactly as documented.
**Priority:** Medium

## 5.4 Counselor Connection Triggers

### TC-SA-AI-21-001 — Trigger conditions
**Type:** Positive
**Covers:** 5.4 → Trigger conditions
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open AI Feature Configuration → AI Study Companion → Counselor Connection.
2. Set the trigger conditions (severe burnout, sustained negative mood, self-reported distress, student request).
3. Verify counselor connections are triggered on the configured conditions.
**Expected Result:** Trigger conditions — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-21-002 — Connection routing
**Type:** Positive
**Covers:** 5.4 → Connection routing
**Preconditions:** Trigger conditions are set.
**Steps:**
1. Configure the connection routing (counselor queue, assigned counselor, parent-informed).
2. Verify connections are routed as configured.
**Expected Result:** Connection routing — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-21-003 — Consent requirements
**Type:** Positive
**Covers:** 5.4 → Consent requirements
**Preconditions:** Connection routing is configured.
**Steps:**
1. Define the consent requirements (student consent, parent consent for minors).
2. Verify consent is enforced before a session.
**Expected Result:** Consent requirements — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-21-004 — Follow-up tracking
**Type:** Positive
**Covers:** 5.4 → Follow-up tracking
**Preconditions:** Counselor connections are occurring.
**Steps:**
1. Set the follow-up tracking (session scheduled, completed, outcome).
2. Verify follow-ups are tracked.
**Expected Result:** Follow-up tracking — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-21-005 — Trigger history (immutable)
**Type:** Positive
**Covers:** 5.4 → Trigger history
**Preconditions:** Counselor triggers have occurred.
**Steps:**
1. Enable the trigger history.
2. Verify all triggers with resolution are recorded.
**Expected Result:** Trigger history — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-21-006 — Rule: student-requested always succeeds
**Type:** Edge
**Covers:** 5.4 → Rule: student request
**Preconditions:** A student requests a counselor connection.
**Steps:**
1. Submit the student request.
2. Verify the connection always succeeds (never blocked by consent or routing constraints).
**Expected Result:** A student-requested counselor connection always succeeds; it is never blocked by consent or routing constraints — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-21-007 — Rule: minor requires parent consent, held not dropped
**Type:** Edge
**Covers:** 5.4 → Rule: minor consent
**Preconditions:** A minor triggers a counselor connection requiring parent consent.
**Steps:**
1. Trigger the connection.
2. Verify the request is held (not dropped) until parent consent is given.
**Expected Result:** A minor's counselor connection requires parent consent before the session; the request is held, not dropped, until consent — delivered exactly as documented.
**Priority:** High

### TC-SA-AI-21-008 — Rule: every trigger recorded, history immutable
**Type:** Edge
**Covers:** 5.4 → Rule: immutable history
**Preconditions:** Counselor triggers have occurred.
**Steps:**
1. Review the trigger history.
2. Verify every trigger is recorded with the resolution and the history is immutable.
**Expected Result:** Every trigger is recorded in the trigger history with the resolution; the history is immutable — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-21-009 — Audit logging of counselor connection triggers
**Type:** Positive
**Covers:** 5.4 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a counselor connection trigger.
2. Verify the change is recorded in the audit log with the rule, the change, and the timestamp.
**Expected Result:** Audit logging of counselor connection triggers — delivered exactly as documented.
**Priority:** Medium

## 5.5 Motivational Content Mapping

### TC-SA-AI-22-001 — Motivational content types
**Type:** Positive
**Covers:** 5.5 → Content types
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open AI Feature Configuration → AI Study Companion → Motivational Content.
2. Set the motivational content types (quotes, success stories, videos, audio, images).
3. Verify content of the defined types is available.
**Expected Result:** Motivational content types — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-002 — Mood-to-content mapping
**Type:** Positive
**Covers:** 5.5 → Mood-to-content mapping
**Preconditions:** Content types are set.
**Steps:**
1. Configure the mood-to-content mapping (content per mood state).
2. Verify content is served per the mapped mood state.
**Expected Result:** Mood-to-content mapping — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-003 — Content frequency
**Type:** Positive
**Covers:** 5.5 → Content frequency
**Preconditions:** Mood-to-content mapping is configured.
**Steps:**
1. Define the content frequency (max motivational items per session, per day).
2. Verify content respects the frequency.
**Expected Result:** Content frequency — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-004 — Content effectiveness tracking
**Type:** Positive
**Covers:** 5.5 → Effectiveness tracking
**Preconditions:** Motivational content is being served.
**Steps:**
1. Set the content effectiveness tracking (engagement, mood improvement after content).
2. Verify effectiveness is tracked.
**Expected Result:** Content effectiveness tracking — delivered exactly as documented.
**Priority:** Low

### TC-SA-AI-22-005 — Content library management
**Type:** Positive
**Covers:** 5.5 → Library management
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Manage the content library (add, retire, feature content).
2. Verify the library reflects the changes.
**Expected Result:** Content library management — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-006 — Rule: no mapped content → default fallback
**Type:** Edge
**Covers:** 5.5 → Rule: fallback
**Preconditions:** A mood state has no mapped content.
**Steps:**
1. Trigger the mood state.
2. Verify the default motivational content is served (never an empty state).
**Expected Result:** A mood state with no mapped content falls back to the default motivational content; it is never an empty state — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-007 — Rule: retired not served to new sessions
**Type:** Edge
**Covers:** 5.5 → Rule: retired
**Preconditions:** A content item is retired while a session is in progress.
**Steps:**
1. Start a new session and verify the retired item is not served.
2. Verify the in-progress session finishes with it.
**Expected Result:** A retired content item is not served to new sessions; in-progress sessions finish with it — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-008 — Rule: frequency limit prevents overload
**Type:** Edge
**Covers:** 5.5 → Rule: overload
**Preconditions:** The content frequency limit is reached.
**Steps:**
1. Trigger additional motivational content conditions.
2. Verify excess items are not queued.
**Expected Result:** The content frequency limit prevents motivational overload; excess items are not queued — delivered exactly as documented.
**Priority:** Medium

### TC-SA-AI-22-009 — Audit logging of motivational content mapping
**Type:** Positive
**Covers:** 5.5 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a motivational content mapping.
2. Verify the change is recorded in the audit log with the mapping, the change, and the timestamp.
**Expected Result:** Audit logging of motivational content mapping — delivered exactly as documented.
**Priority:** Medium
