# 1. Room Configuration — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: room_configuration.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 |
|---------|--------------------|----------|
| 1.1 Room Creation | Room name | TC-SA-VR-01-001 |
| 1.1 Room Creation | Room description | TC-SA-VR-01-002 |
| 1.1 Room Creation | Room creation | TC-SA-VR-01-003 |
| 1.1 Room Creation | Room listing | TC-SA-VR-01-004 |
| 1.1 Room Creation | Room deletion | TC-SA-VR-01-005 |
| 1.1 Room Creation | Rule: a creation requires a name | TC-SA-VR-01-006 |
| 1.1 Room Creation | Rule: a room with an active session cannot be deleted | TC-SA-VR-01-007 |
| 1.1 Room Creation | Rule: room actions are audit-logged | TC-SA-VR-01-008 |
| 1.2 Room Capacity | Capacity setting | TC-SA-VR-01-009 |
| 1.2 Room Capacity | Capacity limit | TC-SA-VR-01-010 |
| 1.2 Room Capacity | Capacity status | TC-SA-VR-01-011 |
| 1.2 Room Capacity | Waitlist | TC-SA-VR-01-012 |
| 1.2 Room Capacity | Capacity log | TC-SA-VR-01-013 |
| 1.2 Room Capacity | Rule: a learner cannot join a full room | TC-SA-VR-01-014 |
| 1.2 Room Capacity | Rule: capacity actions are audit-logged | TC-SA-VR-01-015 |
| 1.3 Subject Tagging | Subject tag | TC-SA-VR-01-016 |
| 1.3 Subject Tagging | Tag assignment | TC-SA-VR-01-017 |
| 1.3 Subject Tagging | Tag filtering | TC-SA-VR-01-018 |
| 1.3 Subject Tagging | Tag listing | TC-SA-VR-01-019 |
| 1.3 Subject Tagging | Tag history | TC-SA-VR-01-020 |
| 1.3 Subject Tagging | Rule: a room without a tag is not filterable by subject | TC-SA-VR-01-021 |
| 1.3 Subject Tagging | Rule: tag actions are audit-logged | TC-SA-VR-01-022 |
| 1.4 Video Option | Video toggle | TC-SA-VR-01-023 |
| 1.4 Video Option | Video default | TC-SA-VR-01-024 |
| 1.4 Video Option | Video status | TC-SA-VR-01-025 |
| 1.4 Video Option | Video policy | TC-SA-VR-01-026 |
| 1.4 Video Option | Video log | TC-SA-VR-01-027 |
| 1.4 Video Option | Rule: a learner can join without enabling the video | TC-SA-VR-01-028 |
| 1.4 Video Option | Rule: video actions are audit-logged | TC-SA-VR-01-029 |
| 1.5 Ambient Sound Library | Sound creation | TC-SA-VR-01-030 |
| 1.5 Ambient Sound Library | Sound categories | TC-SA-VR-01-031 |
| 1.5 Ambient Sound Library | Sound enablement | TC-SA-VR-01-032 |
| 1.5 Ambient Sound Library | Sound listing | TC-SA-VR-01-033 |
| 1.5 Ambient Sound Library | Sound deletion | TC-SA-VR-01-034 |
| 1.5 Ambient Sound Library | Rule: an inactive sound cannot be selected | TC-SA-VR-01-035 |
| 1.5 Ambient Sound Library | Rule: sound actions are audit-logged | TC-SA-VR-01-036 |
| 1.6 Room Enablement | Enablement toggle | TC-SA-VR-01-037 |
| 1.6 Room Enablement | Enablement status | TC-SA-VR-01-038 |
| 1.6 Room Enablement | Enablement scope | TC-SA-VR-01-039 |
| 1.6 Room Enablement | Enablement log | TC-SA-VR-01-040 |
| 1.6 Room Enablement | Enablement history | TC-SA-VR-01-041 |
| 1.6 Room Enablement | Rule: a learner cannot join a disabled room | TC-SA-VR-01-042 |
| 1.6 Room Enablement | Rule: enablement actions are audit-logged | TC-SA-VR-01-043 |

### TC-SA-VR-01-001 — Room name
**Type:** Positive
**Covers:** 1.1 → Room name: the name of the study room
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, enter a room name and save.
2. Observe the result and verify the full behavior: the name is shown.
**Expected Result:** The name is set — it is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-002 — Room description
**Type:** Positive
**Covers:** 1.1 → Room description: the description of the room
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, enter a description and save.
2. Observe the result and verify the full behavior: the description is shown.
**Expected Result:** The description is set — it is shown, delivered exactly as documented.
**Priority:** Low

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

### TC-SA-VR-01-004 — Room listing
**Type:** Positive
**Covers:** 1.1 → Room listing: the listing of all rooms
**Preconditions:** A Super Admin account is active; multiple rooms exist.
**Steps:**
1. As a Super Admin, open the room listing.
2. Observe the result and verify the full behavior: all rooms are listed.
**Expected Result:** The listing is shown — the rooms are listed, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-005 — Room deletion
**Type:** Positive
**Covers:** 1.1 → Room deletion: the deletion of a room
**Preconditions:** A Super Admin account is active; a room exists with no active session.
**Steps:**
1. As a Super Admin, delete the room.
2. Observe the result and verify the full behavior: the room is removed.
**Expected Result:** The deletion works — the room is removed, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-006 — Rule: a creation requires a name
**Type:** Negative
**Covers:** 1.1 → Rule: a room creation requires a name
**Preconditions:** A Super Admin account is active; the name is empty.
**Steps:**
1. As a Super Admin, attempt to create the room without a name.
2. Observe the result and verify the full behavior: the creation is blocked with a validation error.
**Expected Result:** The creation is blocked — the required field is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-007 — Rule: a room with an active session cannot be deleted
**Type:** Negative
**Covers:** 1.1 → Rule: a room with an active session cannot be deleted
**Preconditions:** A Super Admin account is active; a room has an active session.
**Steps:**
1. As a Super Admin, attempt to delete the room.
2. Observe the result and verify the full behavior: the deletion is blocked.
**Expected Result:** The deletion is blocked — the active session is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-008 — Rule: room actions are audit-logged
**Type:** Positive
**Covers:** 1.1 → Audit logging of room creation
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a room 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-01-009 — Capacity setting
**Type:** Positive
**Covers:** 1.2 → Capacity setting: the setting of the room capacity
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, set the capacity and save.
2. Observe the result and verify the full behavior: the capacity is shown.
**Expected Result:** The setting works — the capacity is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-010 — Capacity limit
**Type:** Positive
**Covers:** 1.2 → Capacity limit: the limit of learners per room
**Preconditions:** A Super Admin account is active; a room has a capacity.
**Steps:**
1. As a Super Admin, view the capacity limit.
2. Observe the result and verify the full behavior: the limit is shown.
**Expected Result:** The limit is shown — it is accurate, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-011 — Capacity status
**Type:** Positive
**Covers:** 1.2 → Capacity status: the status of the room
**Preconditions:** A Super Admin account is active; a room has learners.
**Steps:**
1. As a Super Admin, view the capacity 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-01-012 — Waitlist
**Type:** Positive
**Covers:** 1.2 → Waitlist: the waitlist for a full room
**Preconditions:** A Super Admin account is active; a room is full.
**Steps:**
1. As a learner, attempt to join the full room.
2. Observe the result and verify the full behavior: the learner is added to the waitlist.
**Expected Result:** The waitlist works — the learner is added, delivered exactly as documented.
**Priority:** Medium

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

### TC-SA-VR-01-014 — Rule: a learner cannot join a full room
**Type:** Negative
**Covers:** 1.2 → Rule: a learner cannot join a full room
**Preconditions:** A Super Admin account is active; a room is full.
**Steps:**
1. As a learner, attempt to join the room.
2. Observe the result and verify the full behavior: the join is blocked.
**Expected Result:** The join is blocked — the room is full, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-015 — Rule: capacity actions are audit-logged
**Type:** Positive
**Covers:** 1.2 → Audit logging of room capacity
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, set the capacity 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-01-016 — Subject tag
**Type:** Positive
**Covers:** 1.3 → Subject tag: the tag of a subject
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, create a subject tag and save.
2. Observe the result and verify the full behavior: the tag is created and listed.
**Expected Result:** The tag is created — it is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-017 — Tag assignment
**Type:** Positive
**Covers:** 1.3 → Tag assignment: the assignment of the tag to a room
**Preconditions:** A Super Admin account is active; a tag and a room exist.
**Steps:**
1. As a Super Admin, assign the tag to the room and save.
2. Observe the result and verify the full behavior: the tag is linked to the room.
**Expected Result:** The assignment works — the tag is linked, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-018 — Tag filtering
**Type:** Positive
**Covers:** 1.3 → Tag filtering: the filtering of rooms by tag
**Preconditions:** A Super Admin account is active; rooms have tags.
**Steps:**
1. As a Super Admin, filter rooms by a tag.
2. Observe the result and verify the full behavior: the rooms are narrowed by the tag.
**Expected Result:** The filtering works — the rooms are narrowed, delivered exactly as documented.
**Priority:** Medium

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

### TC-SA-VR-01-020 — Tag history
**Type:** Positive
**Covers:** 1.3 → Tag history: the history of the tags
**Preconditions:** A Super Admin account is active; tags have a history.
**Steps:**
1. As a Super Admin, open the tag history.
2. Observe the result and verify the full behavior: the past tags are listed.
**Expected Result:** The history is shown — the tags are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-01-021 — Rule: a room without a tag is not filterable by subject
**Type:** Negative
**Covers:** 1.3 → Rule: a room without a tag is not filterable by subject
**Preconditions:** A Super Admin account is active; a room has no tag.
**Steps:**
1. As a Super Admin, filter rooms by a subject tag.
2. Observe the result and verify the full behavior: the room is not in the results.
**Expected Result:** The room is not filterable — it has no tag, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-022 — Rule: tag actions are audit-logged
**Type:** Positive
**Covers:** 1.3 → Audit logging of subject tagging
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, assign a tag 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-01-023 — Video toggle
**Type:** Positive
**Covers:** 1.4 → Video toggle: the toggle of the video option
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, toggle the video option and save.
2. Observe the result and verify the full behavior: the toggle is applied.
**Expected Result:** The toggle works — it is applied, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-024 — Video default
**Type:** Positive
**Covers:** 1.4 → Video default: the default state of the video
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, set the video default and save.
2. Observe the result and verify the full behavior: the default is applied.
**Expected Result:** The default is set — it is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-025 — Video status
**Type:** Positive
**Covers:** 1.4 → Video status: the status of the video per learner
**Preconditions:** A Super Admin account is active; learners are in a room.
**Steps:**
1. As a Super Admin, view the video status.
2. Observe the result and verify the full behavior: the status per learner is shown.
**Expected Result:** The status is shown — it reflects the state, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-01-026 — Video policy
**Type:** Positive
**Covers:** 1.4 → Video policy: the policy for the video
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, set the video policy and save.
2. Observe the result and verify the full behavior: the policy is applied.
**Expected Result:** The policy is set — it is applied, delivered exactly as documented.
**Priority:** Medium

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

### TC-SA-VR-01-028 — Rule: a learner can join without enabling the video
**Type:** Positive
**Covers:** 1.4 → Rule: a learner can join without enabling the video
**Preconditions:** A Super Admin account is active; a room is open.
**Steps:**
1. As a learner, join the room without enabling the video.
2. Observe the result and verify the full behavior: the learner joins successfully.
**Expected Result:** The join works — the video is optional, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-029 — Rule: video actions are audit-logged
**Type:** Positive
**Covers:** 1.4 → Audit logging of video option
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, toggle the video option 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-01-030 — Sound creation
**Type:** Positive
**Covers:** 1.5 → Sound creation: the creation of an ambient sound
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, create an ambient sound with a name and save.
2. Observe the result and verify the full behavior: the sound is created and listed.
**Expected Result:** The creation works — the sound is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-031 — Sound categories
**Type:** Positive
**Covers:** 1.5 → Sound categories: the categories of the sounds
**Preconditions:** A Super Admin account is active; a sound exists.
**Steps:**
1. As a Super Admin, assign the sound to a category and save.
2. Observe the result and verify the full behavior: the category is shown.
**Expected Result:** The category is set — it is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-032 — Sound enablement
**Type:** Positive
**Covers:** 1.5 → Sound enablement: the sound toggled active or inactive
**Preconditions:** A Super Admin account is active; a sound exists.
**Steps:**
1. As a Super Admin, activate the sound.
2. Observe the result and verify the full behavior: the sound is available.
**Expected Result:** The enablement works — the sound is available, delivered exactly as documented.
**Priority:** Medium

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

### TC-SA-VR-01-034 — Sound deletion
**Type:** Positive
**Covers:** 1.5 → Sound deletion: the deletion of a sound
**Preconditions:** A Super Admin account is active; a sound exists.
**Steps:**
1. As a Super Admin, delete the sound.
2. Observe the result and verify the full behavior: the sound is removed.
**Expected Result:** The deletion works — the sound is removed, delivered exactly as documented.
**Priority:** Medium

### TC-SA-VR-01-035 — Rule: an inactive sound cannot be selected
**Type:** Negative
**Covers:** 1.5 → Rule: an inactive sound cannot be selected by a learner
**Preconditions:** A Super Admin account is active; a sound is inactive.
**Steps:**
1. As a learner, attempt to select the sound.
2. Observe the result and verify the full behavior: the selection is blocked.
**Expected Result:** The selection is blocked — the sound is inactive, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-036 — Rule: sound actions are audit-logged
**Type:** Positive
**Covers:** 1.5 → Audit logging of ambient sound library
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a sound 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-01-037 — Enablement toggle
**Type:** Positive
**Covers:** 1.6 → Enablement toggle: the toggle of the room enablement
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, toggle the room enablement and save.
2. Observe the result and verify the full behavior: the toggle is applied.
**Expected Result:** The toggle works — it is applied, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-038 — Enablement status
**Type:** Positive
**Covers:** 1.6 → Enablement status: the status of the room
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, view the enablement 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-01-039 — Enablement scope
**Type:** Positive
**Covers:** 1.6 → Enablement scope: the scope of the enablement
**Preconditions:** A Super Admin account is active; a room exists.
**Steps:**
1. As a Super Admin, set the enablement scope and save.
2. Observe the result and verify the full behavior: the scope is applied.
**Expected Result:** The scope is set — it is applied, delivered exactly as documented.
**Priority:** Medium

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

### TC-SA-VR-01-041 — Enablement history
**Type:** Positive
**Covers:** 1.6 → Enablement history: the history of the enablement
**Preconditions:** A Super Admin account is active; enablement has a history.
**Steps:**
1. As a Super Admin, open the enablement history.
2. Observe the result and verify the full behavior: the past states are listed.
**Expected Result:** The history is shown — the states are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-VR-01-042 — Rule: a learner cannot join a disabled room
**Type:** Negative
**Covers:** 1.6 → Rule: a learner cannot join a disabled room
**Preconditions:** A Super Admin account is active; a room is disabled.
**Steps:**
1. As a learner, attempt to join the room.
2. Observe the result and verify the full behavior: the join is blocked.
**Expected Result:** The join is blocked — the room is disabled, delivered exactly as documented.
**Priority:** High

### TC-SA-VR-01-043 — Rule: enablement actions are audit-logged
**Type:** Positive
**Covers:** 1.6 → Audit logging of room enablement
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, toggle the enablement 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
