# 3. Mind Maps — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: mind_maps.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 |
|---------|--------------------|----------|
| 3.1 Pre-built Mind Maps | Pre-built mind map for each topic | TC-ST-05-03-001 |
| 3.1 Pre-built Mind Maps | Browse maps by subject and topic | TC-ST-05-03-002 |
| 3.1 Pre-built Mind Maps | Interactive, zoomable, and navigable interface | TC-ST-05-03-003 |
| 3.1 Pre-built Mind Maps | Expand and collapse branches | TC-ST-05-03-004 |
| 3.1 Pre-built Mind Maps | Node importance weighting (visual emphasis) | TC-ST-05-03-005 |
| 3.1 Pre-built Mind Maps | Tap a node to see details and links to related content | TC-ST-05-03-006 |
| 3.1 Pre-built Mind Maps | Map available on web and mobile | TC-ST-05-03-007 |
| 3.1 Pre-built Mind Maps | Map content gated by subscription | TC-ST-05-03-008 |
| 3.1 Pre-built Mind Maps | Access event logging (viewed, node opened) | TC-ST-05-03-009 |
| 3.1 Pre-built Mind Maps | Audit logging of the pre-built mind maps | TC-ST-05-03-010 |
| 3.1 Pre-built Mind Maps | Rule: A pre-built map exists per topic; it is organized as a central node with branches. | TC-ST-05-03-001 |
| 3.1 Pre-built Mind Maps | Rule: The interface is zoomable and navigable; branches can be expanded and collapsed. | TC-ST-05-03-002 |
| 3.1 Pre-built Mind Maps | Rule: Node importance is shown via visual emphasis. | TC-ST-05-03-003 |
| 3.1 Pre-built Mind Maps | Rule: A node links to related content (video, flashcards, guide) where available. | TC-ST-05-03-004 |
| 3.1 Pre-built Mind Maps | Rule: Map content is gated by the Student's subscription. | TC-ST-05-03-005 |
| 3.1 Pre-built Mind Maps | Rule: Access events (viewed, node opened) are logged with the map and the timestamp. | TC-ST-05-03-006 |
| 3.1 Pre-built Mind Maps | Rule: The pre-built mind maps is audit-logged with the account, the map, and the timestamp. | TC-ST-05-03-007 |
| 3.2 Custom Mind Map Creator | Create a new custom mind map with a title | TC-ST-05-03-011 |
| 3.2 Custom Mind Map Creator | Drag-and-drop interface for adding and moving nodes | TC-ST-05-03-012 |
| 3.2 Custom Mind Map Creator | Add text, images, and icons to nodes | TC-ST-05-03-013 |
| 3.2 Custom Mind Map Creator | Connect nodes with labeled links | TC-ST-05-03-014 |
| 3.2 Custom Mind Map Creator | Organize nodes into branches | TC-ST-05-03-015 |
| 3.2 Custom Mind Map Creator | Save the map to the Student's library | TC-ST-05-03-016 |
| 3.2 Custom Mind Map Creator | Edit and delete a custom map | TC-ST-05-03-017 |
| 3.2 Custom Mind Map Creator | Custom maps private to the Student | TC-ST-05-03-018 |
| 3.2 Custom Mind Map Creator | Map event logging (created, edited, deleted) | TC-ST-05-03-019 |
| 3.2 Custom Mind Map Creator | Audit logging of the custom mind map creator | TC-ST-05-03-020 |
| 3.2 Custom Mind Map Creator | Rule: A custom map requires a title; nodes are added via drag-and-drop. | TC-ST-05-03-011 |
| 3.2 Custom Mind Map Creator | Rule: Nodes can contain text, images, and icons; links between nodes can be labeled. | TC-ST-05-03-012 |
| 3.2 Custom Mind Map Creator | Rule: Custom maps are private to the Student. | TC-ST-05-03-013 |
| 3.2 Custom Mind Map Creator | Rule: A map can be edited at any time; deletion is permanent. | TC-ST-05-03-014 |
| 3.2 Custom Mind Map Creator | Rule: Map events (created, edited, deleted) are logged with the map and the timestamp. | TC-ST-05-03-015 |
| 3.2 Custom Mind Map Creator | Rule: The custom mind map creator is audit-logged with the account, the map, and the timestamp. | TC-ST-05-03-016 |
| 3.3 Mind Map Sharing | Share a custom map via link or invite | TC-ST-05-03-021 |
| 3.3 Mind Map Sharing | Shared maps read-only to others by default | TC-ST-05-03-022 |
| 3.3 Mind Map Sharing | Allow editing on a shared map (owner option) | TC-ST-05-03-023 |
| 3.3 Mind Map Sharing | Save a shared map to the Student's library | TC-ST-05-03-024 |
| 3.3 Mind Map Sharing | Share status visible on the map | TC-ST-05-03-025 |
| 3.3 Mind Map Sharing | Unshare a map (revoke access) | TC-ST-05-03-026 |
| 3.3 Mind Map Sharing | Sharing event logging (shared, unshared, saved) | TC-ST-05-03-027 |
| 3.3 Mind Map Sharing | Audit logging of the mind map sharing | TC-ST-05-03-028 |
| 3.3 Mind Map Sharing | Rule: A shared map is read-only to others unless the owner allows editing. | TC-ST-05-03-021 |
| 3.3 Mind Map Sharing | Rule: Saving a shared map creates a private copy in the Student's library. | TC-ST-05-03-022 |
| 3.3 Mind Map Sharing | Rule: Unsharing revokes access; the link stops working. | TC-ST-05-03-023 |
| 3.3 Mind Map Sharing | Rule: The share status is visible on the map. | TC-ST-05-03-024 |
| 3.3 Mind Map Sharing | Rule: Sharing events (shared, unshared, saved) are logged with the map and the timestamp. | TC-ST-05-03-025 |
| 3.3 Mind Map Sharing | Rule: The mind map sharing is audit-logged with the account, the map, and the timestamp. | TC-ST-05-03-026 |

## 3.1 Pre-built Mind Maps

### TC-ST-05-03-001 — Pre-built mind map for each topic
**Type:** Positive
**Covers:** 3.1 → Pre-built mind map for each topic; Rule: A pre-built map exists per topic; it is organized as a central node with branches.
**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: Pre-built mind map for each topic.
2. Observe the result and verify the full behavior: Pre-built mind map for each topic.
**Expected Result:** Pre-built mind map for each topic — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-03-002 — Browse maps by subject and topic
**Type:** Positive
**Covers:** 3.1 → Browse maps by subject and topic; Rule: The interface is zoomable and navigable; branches can be expanded and collapsed.
**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: Browse maps by subject and topic.
2. Observe the result and verify the full behavior: Browse maps by subject and topic.
**Expected Result:** Browse maps by subject and topic — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-003 — Interactive, zoomable, and navigable interface
**Type:** Positive
**Covers:** 3.1 → Interactive, zoomable, and navigable interface; Rule: Node importance is shown via visual emphasis.
**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: Interactive.
2. Observe the result and verify the full behavior: Interactive, zoomable, and navigable interface.
**Expected Result:** Interactive, zoomable, and navigable interface — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-004 — Expand and collapse branches
**Type:** Positive
**Covers:** 3.1 → Expand and collapse branches; Rule: A node links to related content (video, flashcards, guide) where available.
**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: Expand and collapse branches.
2. Observe the result and verify the full behavior: Expand and collapse branches.
**Expected Result:** Expand and collapse branches — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-005 — Node importance weighting (visual emphasis)
**Type:** Positive
**Covers:** 3.1 → Node importance weighting (visual emphasis); Rule: Map content is gated by the Student's subscription.
**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: Node importance weighting (visual emphasis).
2. Observe the result and verify the full behavior: Node importance weighting (visual emphasis).
**Expected Result:** Node importance weighting (visual emphasis) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-006 — Tap a node to see details and links to related content
**Type:** Positive
**Covers:** 3.1 → Tap a node to see details and links to related content; Rule: Access events (viewed, node opened) are logged with the map 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: Tap a node to see details and links to related content.
2. Observe the result and verify the full behavior: Tap a node to see details and links to related content.
**Expected Result:** Tap a node to see details and links to related content — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-007 — Map available on web and mobile
**Type:** Positive
**Covers:** 3.1 → Map available on web and mobile; Rule: The pre-built mind maps is audit-logged with the account, the map, 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: Map available on web and mobile.
2. Observe the result and verify the full behavior: Map available on web and mobile.
**Expected Result:** Map available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-008 — Map content gated by subscription
**Type:** Positive
**Covers:** 3.1 → Map content gated by subscription
**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: Map content gated by subscription.
2. Observe the result and verify the full behavior: Map content gated by subscription.
**Expected Result:** Map content gated by subscription — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-009 — Access event logging (viewed, node opened)
**Type:** Positive
**Covers:** 3.1 → Access event logging (viewed, node 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: Access event logging (viewed.
2. Observe the result and verify the full behavior: Access event logging (viewed, node opened).
**Expected Result:** Access event logging (viewed, node opened) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-010 — Audit logging of the pre-built mind maps
**Type:** Positive
**Covers:** 3.1 → Audit logging of the pre-built mind maps
**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 pre-built mind maps.
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

## 3.2 Custom Mind Map Creator

### TC-ST-05-03-011 — Create a new custom mind map with a title
**Type:** Positive
**Covers:** 3.2 → Create a new custom mind map with a title; Rule: A custom map requires a title; nodes are added via drag-and-drop.
**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: Create a new custom mind map with a title.
2. Observe the result and verify the full behavior: Create a new custom mind map with a title.
**Expected Result:** Create a new custom mind map with a title — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-03-012 — Drag-and-drop interface for adding and moving nodes
**Type:** Positive
**Covers:** 3.2 → Drag-and-drop interface for adding and moving nodes; Rule: Nodes can contain text, images, and icons; links between nodes can be labeled.
**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: Drag-and-drop interface for adding and moving nodes.
2. Observe the result and verify the full behavior: Drag-and-drop interface for adding and moving nodes.
**Expected Result:** Drag-and-drop interface for adding and moving nodes — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-013 — Add text, images, and icons to nodes
**Type:** Positive
**Covers:** 3.2 → Add text, images, and icons to nodes; Rule: Custom maps are private to 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: Add text.
2. Observe the result and verify the full behavior: Add text, images, and icons to nodes.
**Expected Result:** Add text, images, and icons to nodes — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-014 — Connect nodes with labeled links
**Type:** Positive
**Covers:** 3.2 → Connect nodes with labeled links; Rule: A map can be edited at any time; deletion is permanent.
**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: Connect nodes with labeled links.
2. Observe the result and verify the full behavior: Connect nodes with labeled links.
**Expected Result:** Connect nodes with labeled links — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-015 — Organize nodes into branches
**Type:** Positive
**Covers:** 3.2 → Organize nodes into branches; Rule: Map events (created, edited, deleted) are logged with the map 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: Organize nodes into branches.
2. Observe the result and verify the full behavior: Organize nodes into branches.
**Expected Result:** Organize nodes into branches — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-016 — Save the map to the Student's library
**Type:** Positive
**Covers:** 3.2 → Save the map to the Student's library; Rule: The custom mind map creator is audit-logged with the account, the map, 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: Save the map to the Student's library.
2. Observe the result and verify the full behavior: Save the map to the Student's library.
**Expected Result:** Save the map to the Student's library — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-017 — Edit and delete a custom map
**Type:** Positive
**Covers:** 3.2 → Edit and delete a custom map
**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: Edit and delete a custom map.
2. Observe the result and verify the full behavior: Edit and delete a custom map.
**Expected Result:** Edit and delete a custom map — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-018 — Custom maps private to the Student
**Type:** Positive
**Covers:** 3.2 → Custom maps private to 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: Custom maps private to the Student.
2. Observe the result and verify the full behavior: Custom maps private to the Student.
**Expected Result:** Custom maps private to the Student — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-019 — Map event logging (created, edited, deleted)
**Type:** Positive
**Covers:** 3.2 → Map event logging (created, edited, deleted)
**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: Map event logging (created.
2. Observe the result and verify the full behavior: Map event logging (created, edited, deleted).
**Expected Result:** Map event logging (created, edited, deleted) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-020 — Audit logging of the custom mind map creator
**Type:** Positive
**Covers:** 3.2 → Audit logging of the custom mind map creator
**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 custom mind map creator.
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

## 3.3 Mind Map Sharing

### TC-ST-05-03-021 — Share a custom map via link or invite
**Type:** Positive
**Covers:** 3.3 → Share a custom map via link or invite; Rule: A shared map is read-only to others unless the owner allows editing.
**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: Share a custom map via link or invite.
2. Observe the result and verify the full behavior: Share a custom map via link or invite.
**Expected Result:** Share a custom map via link or invite — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-03-022 — Shared maps read-only to others by default
**Type:** Positive
**Covers:** 3.3 → Shared maps read-only to others by default; Rule: Saving a shared map creates a private copy in the Student's library.
**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: Shared maps read-only to others by default.
2. Observe the result and verify the full behavior: Shared maps read-only to others by default.
**Expected Result:** Shared maps read-only to others by default — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-023 — Allow editing on a shared map (owner option)
**Type:** Positive
**Covers:** 3.3 → Allow editing on a shared map (owner option); Rule: Unsharing revokes access; the link stops working.
**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: Allow editing on a shared map (owner option).
2. Observe the result and verify the full behavior: Allow editing on a shared map (owner option).
**Expected Result:** Allow editing on a shared map (owner option) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-024 — Save a shared map to the Student's library
**Type:** Positive
**Covers:** 3.3 → Save a shared map to the Student's library; Rule: The share status is visible on the map.
**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: Save a shared map to the Student's library.
2. Observe the result and verify the full behavior: Save a shared map to the Student's library.
**Expected Result:** Save a shared map to the Student's library — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-025 — Share status visible on the map
**Type:** Positive
**Covers:** 3.3 → Share status visible on the map; Rule: Sharing events (shared, unshared, saved) are logged with the map 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: Share status visible on the map.
2. Observe the result and verify the full behavior: Share status visible on the map.
**Expected Result:** Share status visible on the map — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-026 — Unshare a map (revoke access)
**Type:** Positive
**Covers:** 3.3 → Unshare a map (revoke access); Rule: The mind map sharing is audit-logged with the account, the map, 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: Unshare a map (revoke access).
2. Observe the result and verify the full behavior: Unshare a map (revoke access).
**Expected Result:** Unshare a map (revoke access) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-027 — Sharing event logging (shared, unshared, saved)
**Type:** Positive
**Covers:** 3.3 → Sharing event logging (shared, unshared, saved)
**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: Sharing event logging (shared.
2. Observe the result and verify the full behavior: Sharing event logging (shared, unshared, saved).
**Expected Result:** Sharing event logging (shared, unshared, saved) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-03-028 — Audit logging of the mind map sharing
**Type:** Positive
**Covers:** 3.3 → Audit logging of the mind map sharing
**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 mind map sharing.
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
