# 2. Mobile-First Features — Test Cases

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

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature, expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 2.1 Dark Mode | Dark mode for the mobile app | TC-ST-13-02-001 |
| 2.1 Dark Mode | Manual dark mode toggle | TC-ST-13-02-002 |
| 2.1 Dark Mode | Auto-switch based on time | TC-ST-13-02-003 |
| 2.1 Dark Mode | Battery saving in dark mode | TC-ST-13-02-004 |
| 2.1 Dark Mode | Dark mode applies across the app | TC-ST-13-02-005 |
| 2.1 Dark Mode | Dark mode preference synced to the account | TC-ST-13-02-006 |
| 2.1 Dark Mode | Dark mode event logging (enabled, auto-switch) | TC-ST-13-02-007 |
| 2.1 Dark Mode | Audit logging of the dark mode | TC-ST-13-02-008 |
| 2.1 Dark Mode | Rule: Dark mode is a toggle in the mobile app settings. | TC-ST-13-02-001 |
| 2.1 Dark Mode | Rule: Auto-switch is based on the time set by the Student. | TC-ST-13-02-002 |
| 2.1 Dark Mode | Rule: The dark mode applies across the app. | TC-ST-13-02-003 |
| 2.1 Dark Mode | Rule: The dark mode preference is synced to the account. | TC-ST-13-02-004 |
| 2.1 Dark Mode | Rule: Dark mode events (enabled, auto-switch) are logged with the account and the timestamp. | TC-ST-13-02-005 |
| 2.1 Dark Mode | Rule: The dark mode is audit-logged with the account and the timestamp. | TC-ST-13-02-006 |
| 2.2 Picture-in-Picture Video | Picture-in-picture (PiP) video mode | TC-ST-13-02-009 |
| 2.2 Picture-in-Picture Video | Floating video player | TC-ST-13-02-010 |
| 2.2 Picture-in-Picture Video | Watch videos while taking notes | TC-ST-13-02-011 |
| 2.2 Picture-in-Picture Video | Multitask within the app | TC-ST-13-02-012 |
| 2.2 Picture-in-Picture Video | PiP available on the mobile app | TC-ST-13-02-013 |
| 2.2 Picture-in-Picture Video | PiP event logging (entered, exited) | TC-ST-13-02-014 |
| 2.2 Picture-in-Picture Video | Audit logging of the picture-in-picture video | TC-ST-13-02-015 |
| 2.2 Picture-in-Picture Video | Rule: PiP is available on the mobile app. | TC-ST-13-02-009 |
| 2.2 Picture-in-Picture Video | Rule: The video keeps playing in the floating window. | TC-ST-13-02-010 |
| 2.2 Picture-in-Picture Video | Rule: The Student can take notes and multitask while in PiP. | TC-ST-13-02-011 |
| 2.2 Picture-in-Picture Video | Rule: PiP events (entered, exited) are logged with the video and the timestamp. | TC-ST-13-02-012 |
| 2.2 Picture-in-Picture Video | Rule: The picture-in-picture video is audit-logged with the account, the video, and the timestamp. | TC-ST-13-02-013 |
| 2.3 Smart Notifications | Study reminders | TC-ST-13-02-016 |
| 2.3 Smart Notifications | Streak preservation alerts | TC-ST-13-02-017 |
| 2.3 Smart Notifications | Achievement notifications | TC-ST-13-02-018 |
| 2.3 Smart Notifications | Customizable quiet hours | TC-ST-13-02-019 |
| 2.3 Smart Notifications | Actionable notifications (tap to open) | TC-ST-13-02-020 |
| 2.3 Smart Notifications | Notification settings on the mobile app | TC-ST-13-02-021 |
| 2.3 Smart Notifications | Notification event logging (sent, opened) | TC-ST-13-02-022 |
| 2.3 Smart Notifications | Audit logging of the smart notifications | TC-ST-13-02-023 |
| 2.3 Smart Notifications | Rule: Smart notifications include study reminders, streak alerts, and achievements. | TC-ST-13-02-016 |
| 2.3 Smart Notifications | Rule: Quiet hours suppress notifications in the set window. | TC-ST-13-02-017 |
| 2.3 Smart Notifications | Rule: A notification is actionable (tap to open the relevant screen). | TC-ST-13-02-018 |
| 2.3 Smart Notifications | Rule: Notification events (sent, opened) are logged with the account and the timestamp. | TC-ST-13-02-019 |
| 2.3 Smart Notifications | Rule: The smart notifications is audit-logged with the account and the timestamp. | TC-ST-13-02-020 |

## 2.1 Dark Mode

### TC-ST-13-02-001 — Dark mode for the mobile app
**Type:** Positive
**Covers:** 2.1 → Dark mode for the mobile app; Rule: Dark mode is a toggle in the mobile app settings.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Dark mode for the mobile app.
2. Observe the result and verify the full behavior: Dark mode for the mobile app.
**Expected Result:** Dark mode for the mobile app — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-02-002 — Manual dark mode toggle
**Type:** Positive
**Covers:** 2.1 → Manual dark mode toggle; Rule: Auto-switch is based on the time set by the Student.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Manual dark mode toggle.
2. Observe the result and verify the full behavior: Manual dark mode toggle.
**Expected Result:** Manual dark mode toggle — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-003 — Auto-switch based on time
**Type:** Positive
**Covers:** 2.1 → Auto-switch based on time; Rule: The dark mode applies across the app.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Auto-switch based on time.
2. Observe the result and verify the full behavior: Auto-switch based on time.
**Expected Result:** Auto-switch based on time — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-004 — Battery saving in dark mode
**Type:** Positive
**Covers:** 2.1 → Battery saving in dark mode; Rule: The dark mode preference is synced to the account.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Battery saving in dark mode.
2. Observe the result and verify the full behavior: Battery saving in dark mode.
**Expected Result:** Battery saving in dark mode — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-005 — Dark mode applies across the app
**Type:** Positive
**Covers:** 2.1 → Dark mode applies across the app; Rule: Dark mode events (enabled, auto-switch) are logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Dark mode applies across the app.
2. Observe the result and verify the full behavior: Dark mode applies across the app.
**Expected Result:** Dark mode applies across the app — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-006 — Dark mode preference synced to the account
**Type:** Positive
**Covers:** 2.1 → Dark mode preference synced to the account; Rule: The dark mode is audit-logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Dark mode preference synced to the account.
2. Observe the result and verify the full behavior: Dark mode preference synced to the account.
**Expected Result:** Dark mode preference synced to the account — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-007 — Dark mode event logging (enabled, auto-switch)
**Type:** Positive
**Covers:** 2.1 → Dark mode event logging (enabled, auto-switch)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Dark mode event logging (enabled.
2. Observe the result and verify the full behavior: Dark mode event logging (enabled, auto-switch).
**Expected Result:** Dark mode event logging (enabled, auto-switch) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-008 — Audit logging of the dark mode
**Type:** Positive
**Covers:** 2.1 → Audit logging of the dark mode
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the dark mode.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.2 Picture-in-Picture Video

### TC-ST-13-02-009 — Picture-in-picture (PiP) video mode
**Type:** Positive
**Covers:** 2.2 → Picture-in-picture (PiP) video mode; Rule: PiP is available on the mobile app.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Picture-in-picture (PiP) video mode.
2. Observe the result and verify the full behavior: Picture-in-picture (PiP) video mode.
**Expected Result:** Picture-in-picture (PiP) video mode — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-02-010 — Floating video player
**Type:** Positive
**Covers:** 2.2 → Floating video player; Rule: The video keeps playing in the floating window.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Floating video player.
2. Observe the result and verify the full behavior: Floating video player.
**Expected Result:** Floating video player — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-011 — Watch videos while taking notes
**Type:** Positive
**Covers:** 2.2 → Watch videos while taking notes; Rule: The Student can take notes and multitask while in PiP.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Watch videos while taking notes.
2. Observe the result and verify the full behavior: Watch videos while taking notes.
**Expected Result:** Watch videos while taking notes — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-012 — Multitask within the app
**Type:** Positive
**Covers:** 2.2 → Multitask within the app; Rule: PiP events (entered, exited) are logged with the video and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Multitask within the app.
2. Observe the result and verify the full behavior: Multitask within the app.
**Expected Result:** Multitask within the app — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-013 — PiP available on the mobile app
**Type:** Positive
**Covers:** 2.2 → PiP available on the mobile app; Rule: The picture-in-picture video is audit-logged with the account, the video, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: PiP available on the mobile app.
2. Observe the result and verify the full behavior: PiP available on the mobile app.
**Expected Result:** PiP available on the mobile app — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-014 — PiP event logging (entered, exited)
**Type:** Positive
**Covers:** 2.2 → PiP event logging (entered, exited)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: PiP event logging (entered.
2. Observe the result and verify the full behavior: PiP event logging (entered, exited).
**Expected Result:** PiP event logging (entered, exited) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-015 — Audit logging of the picture-in-picture video
**Type:** Positive
**Covers:** 2.2 → Audit logging of the picture-in-picture video
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the picture-in-picture video.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.3 Smart Notifications

### TC-ST-13-02-016 — Study reminders
**Type:** Positive
**Covers:** 2.3 → Study reminders; Rule: Smart notifications include study reminders, streak alerts, and achievements.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Study reminders.
2. Observe the result and verify the full behavior: Study reminders.
**Expected Result:** Study reminders — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-02-017 — Streak preservation alerts
**Type:** Positive
**Covers:** 2.3 → Streak preservation alerts; Rule: Quiet hours suppress notifications in the set window.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Streak preservation alerts.
2. Observe the result and verify the full behavior: Streak preservation alerts.
**Expected Result:** Streak preservation alerts — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-018 — Achievement notifications
**Type:** Positive
**Covers:** 2.3 → Achievement notifications; Rule: A notification is actionable (tap to open the relevant screen).
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Achievement notifications.
2. Observe the result and verify the full behavior: Achievement notifications.
**Expected Result:** Achievement notifications — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-019 — Customizable quiet hours
**Type:** Positive
**Covers:** 2.3 → Customizable quiet hours; Rule: Notification events (sent, opened) are logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Customizable quiet hours.
2. Observe the result and verify the full behavior: Customizable quiet hours.
**Expected Result:** Customizable quiet hours — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-020 — Actionable notifications (tap to open)
**Type:** Positive
**Covers:** 2.3 → Actionable notifications (tap to open); Rule: The smart notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Actionable notifications (tap to open).
2. Observe the result and verify the full behavior: Actionable notifications (tap to open).
**Expected Result:** Actionable notifications (tap to open) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-021 — Notification settings on the mobile app
**Type:** Positive
**Covers:** 2.3 → Notification settings on the mobile app
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Notification settings on the mobile app.
2. Observe the result and verify the full behavior: Notification settings on the mobile app.
**Expected Result:** Notification settings on the mobile app — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-022 — Notification event logging (sent, opened)
**Type:** Positive
**Covers:** 2.3 → Notification event logging (sent, opened)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Notification event logging (sent.
2. Observe the result and verify the full behavior: Notification event logging (sent, opened).
**Expected Result:** Notification event logging (sent, opened) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-02-023 — Audit logging of the smart notifications
**Type:** Positive
**Covers:** 2.3 → Audit logging of the smart notifications
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the smart notifications.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical
