# 2. Session Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: session_management.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 |
|---------|--------------------|----------|
| 2.1 Session Scheduling | Session creation | TC-SA-VR-02-001 |
| 2.1 Session Scheduling | Session time | TC-SA-VR-02-002 |
| 2.1 Session Scheduling | Session duration | TC-SA-VR-02-003 |
| 2.1 Session Scheduling | Session recurrence | TC-SA-VR-02-004 |
| 2.1 Session Scheduling | Session listing | TC-SA-VR-02-005 |
| 2.1 Session Scheduling | Rule: a session without a room cannot be created | TC-SA-VR-02-006 |
| 2.1 Session Scheduling | Rule: session actions are audit-logged | TC-SA-VR-02-007 |
| 2.2 Pomodoro Timer | Timer configuration | TC-SA-VR-02-008 |
| 2.2 Pomodoro Timer | Work interval | TC-SA-VR-02-009 |
| 2.2 Pomodoro Timer | Break interval | TC-SA-VR-02-010 |
| 2.2 Pomodoro Timer | Timer presets | TC-SA-VR-02-011 |
| 2.2 Pomodoro Timer | Timer status | TC-SA-VR-02-012 |
| 2.2 Pomodoro Timer | Rule: a timer with a zero work interval is invalid | TC-SA-VR-02-013 |
| 2.2 Pomodoro Timer | Rule: timer actions are audit-logged | TC-SA-VR-02-014 |
| 2.3 Synchronized Timer | Sync enablement | TC-SA-VR-02-015 |
| 2.3 Synchronized Timer | Sync status | TC-SA-VR-02-016 |
| 2.3 Synchronized Timer | Sync drift | TC-SA-VR-02-017 |
| 2.3 Synchronized Timer | Sync correction | TC-SA-VR-02-018 |
| 2.3 Synchronized Timer | Sync log | TC-SA-VR-02-019 |
| 2.3 Synchronized Timer | Rule: a timer out of sync is corrected automatically | TC-SA-VR-02-020 |
| 2.3 Synchronized Timer | Rule: sync actions are audit-logged | TC-SA-VR-02-021 |
| 2.4 Minimal Chat | Chat enablement | TC-SA-VR-02-022 |
| 2.4 Minimal Chat | Chat limits | TC-SA-VR-02-023 |
| 2.4 Minimal Chat | Chat messages | TC-SA-VR-02-024 |
| 2.4 Minimal Chat | Chat moderation | TC-SA-VR-02-025 |
| 2.4 Minimal Chat | Chat log | TC-SA-VR-02-026 |
| 2.4 Minimal Chat | Rule: a chat message exceeding the limit is blocked | TC-SA-VR-02-027 |
| 2.4 Minimal Chat | Rule: chat actions are audit-logged | TC-SA-VR-02-028 |
| 2.5 Session Recording | Recording enablement | TC-SA-VR-02-029 |
| 2.5 Session Recording | Recording storage | TC-SA-VR-02-030 |
| 2.5 Session Recording | Recording playback | TC-SA-VR-02-031 |
| 2.5 Session Recording | Recording retention | TC-SA-VR-02-032 |
| 2.5 Session Recording | Recording log | TC-SA-VR-02-033 |
| 2.5 Session Recording | Rule: a recording without consent is not stored | TC-SA-VR-02-034 |
| 2.5 Session Recording | Rule: recording actions are audit-logged | TC-SA-VR-02-035 |
| 2.6 Session Attendance | Attendance tracking | TC-SA-VR-02-036 |
| 2.6 Session Attendance | Attendance status | TC-SA-VR-02-037 |
| 2.6 Session Attendance | Attendance rate | TC-SA-VR-02-038 |
| 2.6 Session Attendance | Per-learner breakdown | TC-SA-VR-02-039 |
| 2.6 Session Attendance | Attendance log | TC-SA-VR-02-040 |
| 2.6 Session Attendance | Rule: a session with no attendees shows an empty state | TC-SA-VR-02-041 |
| 2.6 Session Attendance | Rule: attendance actions are audit-logged | TC-SA-VR-02-042 |

### TC-SA-VR-02-001 — Session creation
**Type:** Positive
**Covers:** 2.1 → Session creation: the creation of a study session
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, create a session with a room and time and save.
2. Observe the result and verify the full behavior: the session is created and listed.
**Expected Result:** The creation works — the session is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-002 — Session time
**Type:** Positive
**Covers:** 2.1 → Session time: the time of the session
**Preconditions:** A Super Admin account is active; a session exists.
**Steps:**
1. As a Super Admin, set the session time and save.
2. Observe the result and verify the full behavior: the time is shown.
**Expected Result:** The time is set — it is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-003 — Session duration
**Type:** Positive
**Covers:** 2.1 → Session duration: the duration of the session
**Preconditions:** A Super Admin account is active; a session exists.
**Steps:**
1. As a Super Admin, set the session duration and save.
2. Observe the result and verify the full behavior: the duration is shown.
**Expected Result:** The duration is set — it is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-004 — Session recurrence
**Type:** Positive
**Covers:** 2.1 → Session recurrence: the recurrence of the session
**Preconditions:** A Super Admin account is active; a session exists.
**Steps:**
1. As a Super Admin, set the recurrence and save.
2. Observe the result and verify the full behavior: the session repeats.
**Expected Result:** The recurrence works — the session repeats, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-005 — Session listing
**Type:** Positive
**Covers:** 2.1 → Session listing: the listing of all sessions
**Preconditions:** A Super Admin account is active; multiple sessions exist.
**Steps:**
1. As a Super Admin, open the session listing.
2. Observe the result and verify the full behavior: all sessions are listed.
**Expected Result:** The listing is shown — the sessions are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-006 — Rule: a session without a room cannot be created
**Type:** Negative
**Covers:** 2.1 → Rule: a session without a room cannot be created
**Preconditions:** A Super Admin account is active; no room is selected.
**Steps:**
1. As a Super Admin, attempt to create the session without a room.
2. Observe the result and verify the full behavior: the creation is blocked.
**Expected Result:** The creation is blocked — the room precondition is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-007 — Rule: session actions are audit-logged
**Type:** Positive
**Covers:** 2.1 → Audit logging of session scheduling
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a session and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-008 — Timer configuration
**Type:** Positive
**Covers:** 2.2 → Timer configuration: the configuration of the Pomodoro timer
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, configure the Pomodoro timer and save.
2. Observe the result and verify the full behavior: the configuration is applied.
**Expected Result:** The configuration works — it is applied, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-009 — Work interval
**Type:** Positive
**Covers:** 2.2 → Work interval: the work interval of the timer
**Preconditions:** A Super Admin account is active; a timer exists.
**Steps:**
1. As a Super Admin, set the work interval and save.
2. Observe the result and verify the full behavior: the work interval is shown.
**Expected Result:** The work interval is set — it is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-010 — Break interval
**Type:** Positive
**Covers:** 2.2 → Break interval: the break interval of the timer
**Preconditions:** A Super Admin account is active; a timer exists.
**Steps:**
1. As a Super Admin, set the break interval and save.
2. Observe the result and verify the full behavior: the break interval is shown.
**Expected Result:** The break interval is set — it is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-011 — Timer presets
**Type:** Positive
**Covers:** 2.2 → Timer presets: the presets of the timer
**Preconditions:** A Super Admin account is active; a timer exists.
**Steps:**
1. As a Super Admin, save a timer preset.
2. Observe the result and verify the full behavior: the preset is listed.
**Expected Result:** The preset is saved — it is listed, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-012 — Timer status
**Type:** Positive
**Covers:** 2.2 → Timer status: the status of the timer
**Preconditions:** A Super Admin account is active; a timer is running.
**Steps:**
1. As a Super Admin, view the timer status.
2. Observe the result and verify the full behavior: the status is shown.
**Expected Result:** The status is shown — it reflects the state, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-013 — Rule: a timer with a zero work interval is invalid
**Type:** Negative
**Covers:** 2.2 → Rule: a timer with a zero work interval is invalid
**Preconditions:** A Super Admin account is active; the work interval is zero.
**Steps:**
1. As a Super Admin, attempt to save the timer with a zero work interval.
2. Observe the result and verify the full behavior: the save is blocked with a validation error.
**Expected Result:** The save is blocked — the work interval is invalid, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-014 — Rule: timer actions are audit-logged
**Type:** Positive
**Covers:** 2.2 → Audit logging of Pomodoro timer
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, configure the timer and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-015 — Sync enablement
**Type:** Positive
**Covers:** 2.3 → Sync enablement: the enablement of the synchronized timer
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, enable the synchronized timer for the room and save.
2. Observe the result and verify the full behavior: the sync is enabled.
**Expected Result:** The enablement works — the sync is enabled, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-016 — Sync status
**Type:** Positive
**Covers:** 2.3 → Sync status: the status of the synchronization
**Preconditions:** A Super Admin account is active; the sync is enabled.
**Steps:**
1. As a Super Admin, view the sync status.
2. Observe the result and verify the full behavior: the status is shown.
**Expected Result:** The status is shown — it reflects the state, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-017 — Sync drift
**Type:** Positive
**Covers:** 2.3 → Sync drift: the drift of the timers
**Preconditions:** A Super Admin account is active; the sync is enabled.
**Steps:**
1. As a Super Admin, view the sync drift.
2. Observe the result and verify the full behavior: the drift is shown.
**Expected Result:** The drift is shown — it is accurate, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-018 — Sync correction
**Type:** Positive
**Covers:** 2.3 → Sync correction: the correction of the timer drift
**Preconditions:** A Super Admin account is active; a timer is out of sync.
**Steps:**
1. As a Super Admin, trigger the sync correction.
2. Observe the result and verify the full behavior: the timers are aligned.
**Expected Result:** The correction works — the timers are aligned, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-019 — Sync log
**Type:** Positive
**Covers:** 2.3 → Sync log: the log of the synchronization
**Preconditions:** A Super Admin account is active; sync events exist.
**Steps:**
1. As a Super Admin, open the sync log.
2. Observe the result and verify the full behavior: the events are listed.
**Expected Result:** The log is shown — the events are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-020 — Rule: a timer out of sync is corrected automatically
**Type:** Positive
**Covers:** 2.3 → Rule: a timer out of sync is corrected automatically
**Preconditions:** A Super Admin account is active; a timer is out of sync.
**Steps:**
1. Observe the result and verify the full behavior: the timer is corrected automatically.
**Expected Result:** The correction is automatic — the timer is aligned, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-021 — Rule: sync actions are audit-logged
**Type:** Positive
**Covers:** 2.3 → Audit logging of synchronized timer
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, enable the sync and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-022 — Chat enablement
**Type:** Positive
**Covers:** 2.4 → Chat enablement: the enablement of the minimal chat
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, enable the minimal chat and save.
2. Observe the result and verify the full behavior: the chat is enabled.
**Expected Result:** The enablement works — the chat is enabled, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-023 — Chat limits
**Type:** Positive
**Covers:** 2.4 → Chat limits: the limits of the chat
**Preconditions:** A Super Admin account is active; the chat is enabled.
**Steps:**
1. As a Super Admin, set the chat limits and save.
2. Observe the result and verify the full behavior: the limits are applied.
**Expected Result:** The limits are set — they are applied, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-024 — Chat messages
**Type:** Positive
**Covers:** 2.4 → Chat messages: the messages in the chat
**Preconditions:** A Super Admin account is active; the chat is enabled.
**Steps:**
1. As a learner, send a chat message.
2. Observe the result and verify the full behavior: the message is shown.
**Expected Result:** The message is shown — it is delivered, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-025 — Chat moderation
**Type:** Positive
**Covers:** 2.4 → Chat moderation: the moderation of the chat
**Preconditions:** A Super Admin account is active; the chat is enabled.
**Steps:**
1. As a Super Admin, moderate an inappropriate message.
2. Observe the result and verify the full behavior: the message is removed.
**Expected Result:** The moderation works — the message is removed, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-026 — Chat log
**Type:** Positive
**Covers:** 2.4 → Chat log: the log of the chat
**Preconditions:** A Super Admin account is active; chat messages exist.
**Steps:**
1. As a Super Admin, open the chat log.
2. Observe the result and verify the full behavior: the messages are listed.
**Expected Result:** The log is shown — the messages are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-027 — Rule: a chat message exceeding the limit is blocked
**Type:** Negative
**Covers:** 2.4 → Rule: a chat message exceeding the limit is blocked
**Preconditions:** A Super Admin account is active; the chat limit is set.
**Steps:**
1. As a learner, send a message exceeding the limit.
2. Observe the result and verify the full behavior: the message is blocked.
**Expected Result:** The message is blocked — the limit is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-028 — Rule: chat actions are audit-logged
**Type:** Positive
**Covers:** 2.4 → Audit logging of minimal chat
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, set the chat limits and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-029 — Recording enablement
**Type:** Positive
**Covers:** 2.5 → Recording enablement: the enablement of the session recording
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, enable the session recording and save.
2. Observe the result and verify the full behavior: the recording is enabled.
**Expected Result:** The enablement works — the recording is enabled, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-030 — Recording storage
**Type:** Positive
**Covers:** 2.5 → Recording storage: the storage of the recordings
**Preconditions:** A Super Admin account is active; a session is recorded.
**Steps:**
1. As a Super Admin, view the recording storage.
2. Observe the result and verify the full behavior: the recording is stored.
**Expected Result:** The storage works — the recording is stored, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-031 — Recording playback
**Type:** Positive
**Covers:** 2.5 → Recording playback: the playback of the recordings
**Preconditions:** A Super Admin account is active; a recording exists.
**Steps:**
1. As a Super Admin, play the recording.
2. Observe the result and verify the full behavior: the recording plays.
**Expected Result:** The playback works — the recording plays, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-032 — Recording retention
**Type:** Positive
**Covers:** 2.5 → Recording retention: the retention of the recordings
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, set the recording retention and save.
2. Observe the result and verify the full behavior: the retention is applied.
**Expected Result:** The retention is set — it is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-033 — Recording log
**Type:** Positive
**Covers:** 2.5 → Recording log: the log of the recordings
**Preconditions:** A Super Admin account is active; recordings exist.
**Steps:**
1. As a Super Admin, open the recording log.
2. Observe the result and verify the full behavior: the recordings are listed.
**Expected Result:** The log is shown — the recordings are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-034 — Rule: a recording without consent is not stored
**Type:** Negative
**Covers:** 2.5 → Rule: a recording without consent is not stored
**Preconditions:** A Super Admin account is active; no consent is granted.
**Steps:**
1. As a Super Admin, attempt to record the session.
2. Observe the result and verify the full behavior: the recording is not stored.
**Expected Result:** The recording is not stored — the consent precondition is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-035 — Rule: recording actions are audit-logged
**Type:** Positive
**Covers:** 2.5 → Audit logging of session recording
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, enable the recording and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-036 — Attendance tracking
**Type:** Positive
**Covers:** 2.6 → Attendance tracking: the tracking of the attendance
**Preconditions:** A Super Admin account is active; a session has attendees.
**Steps:**
1. As a Super Admin, view the attendance tracking.
2. Observe the result and verify the full behavior: the attendance is recorded.
**Expected Result:** The tracking works — the attendance is recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-02-037 — Attendance status
**Type:** Positive
**Covers:** 2.6 → Attendance status: the status of the attendance
**Preconditions:** A Super Admin account is active; a session has attendees.
**Steps:**
1. As a Super Admin, view the attendance status.
2. Observe the result and verify the full behavior: the status is shown.
**Expected Result:** The status is shown — it reflects the state, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-038 — Attendance rate
**Type:** Positive
**Covers:** 2.6 → Attendance rate: the rate of the attendance
**Preconditions:** A Super Admin account is active; sessions have attendees.
**Steps:**
1. As a Super Admin, view the attendance rate.
2. Observe the result and verify the full behavior: the rate is shown.
**Expected Result:** The rate is shown — it is accurate, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-039 — Per-learner breakdown
**Type:** Positive
**Covers:** 2.6 → Per-learner breakdown: the attendance per learner
**Preconditions:** A Super Admin account is active; attendance exists for multiple learners.
**Steps:**
1. As a Super Admin, view the per-learner breakdown.
2. Observe the result and verify the full behavior: the attendance is separated per learner.
**Expected Result:** The breakdown is shown — the attendance is separated, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-02-040 — Attendance log
**Type:** Positive
**Covers:** 2.6 → Attendance log: the log of the attendance
**Preconditions:** A Super Admin account is active; attendance has a history.
**Steps:**
1. As a Super Admin, open the attendance log.
2. Observe the result and verify the full behavior: the past attendance is listed.
**Expected Result:** The log is shown — the attendance is listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-041 — Rule: a session with no attendees shows an empty state
**Type:** Positive
**Covers:** 2.6 → Rule: a session with no attendees shows an empty state
**Preconditions:** A Super Admin account is active; a session has no attendees.
**Steps:**
1. As a Super Admin, view the session attendance.
2. Observe the result and verify the full behavior: an empty state is shown.
**Expected Result:** The empty state is shown — it is displayed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-02-042 — Rule: attendance actions are audit-logged
**Type:** Positive
**Covers:** 2.6 → Audit logging of session attendance
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, record the attendance and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High
