# 2. Study Groups — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: study_groups.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 Study Group Creation and Membership | Create a study group with a name and topic | TC-ST-10-02-001 |
| 2.1 Study Group Creation and Membership | Invite classmates to a group | TC-ST-10-02-002 |
| 2.1 Study Group Creation and Membership | Join a study group created by another Student | TC-ST-10-02-003 |
| 2.1 Study Group Creation and Membership | Group member list | TC-ST-10-02-004 |
| 2.1 Study Group Creation and Membership | Group owner manages membership (add, remove) | TC-ST-10-02-005 |
| 2.1 Study Group Creation and Membership | Leave a study group | TC-ST-10-02-006 |
| 2.1 Study Group Creation and Membership | Group list (owned and joined) | TC-ST-10-02-007 |
| 2.1 Study Group Creation and Membership | Group event logging (created, joined, left, member added/removed) | TC-ST-10-02-008 |
| 2.1 Study Group Creation and Membership | Audit logging of the study group creation and membership | TC-ST-10-02-009 |
| 2.1 Study Group Creation and Membership | Rule: A group requires a name and a topic. | TC-ST-10-02-001 |
| 2.1 Study Group Creation and Membership | Rule: Invites are sent to specific classmates. | TC-ST-10-02-002 |
| 2.1 Study Group Creation and Membership | Rule: The group owner manages membership (add, remove). | TC-ST-10-02-003 |
| 2.1 Study Group Creation and Membership | Rule: A member can leave a group at any time. | TC-ST-10-02-004 |
| 2.1 Study Group Creation and Membership | Rule: Group events (created, joined, left, member added/removed) are logged with the group and the timestamp. | TC-ST-10-02-005 |
| 2.1 Study Group Creation and Membership | Rule: The study group creation and membership is audit-logged with the account, the group, and the timestamp. | TC-ST-10-02-006 |
| 2.2 Group Collaboration | Shared group feed | TC-ST-10-02-010 |
| 2.2 Group Collaboration | Share resources (notes, flashcards, links) in the group | TC-ST-10-02-011 |
| 2.2 Group Collaboration | Group announcements by the owner | TC-ST-10-02-012 |
| 2.2 Group Collaboration | React to and comment on feed posts | TC-ST-10-02-013 |
| 2.2 Group Collaboration | Group file/resource list | TC-ST-10-02-014 |
| 2.2 Group Collaboration | Collaboration event logging (posted, shared, reacted) | TC-ST-10-02-015 |
| 2.2 Group Collaboration | Audit logging of the group collaboration | TC-ST-10-02-016 |
| 2.2 Group Collaboration | Rule: Only group members can see and post to the group feed. | TC-ST-10-02-010 |
| 2.2 Group Collaboration | Rule: Resources shared in the group are visible to members. | TC-ST-10-02-011 |
| 2.2 Group Collaboration | Rule: Only the group owner can post announcements. | TC-ST-10-02-012 |
| 2.2 Group Collaboration | Rule: Reactions and comments are recorded on the post. | TC-ST-10-02-013 |
| 2.2 Group Collaboration | Rule: Collaboration events (posted, shared, reacted) are logged with the group and the timestamp. | TC-ST-10-02-014 |
| 2.2 Group Collaboration | Rule: The group collaboration is audit-logged with the account, the group, and the timestamp. | TC-ST-10-02-015 |
| 2.3 Group Study Sessions | Schedule a group study session (topic, time) | TC-ST-10-02-017 |
| 2.3 Group Study Sessions | Members receive a session reminder | TC-ST-10-02-018 |
| 2.3 Group Study Sessions | Mark a session attended | TC-ST-10-02-019 |
| 2.3 Group Study Sessions | Session list (upcoming and past) | TC-ST-10-02-020 |
| 2.3 Group Study Sessions | Session attendance tracking | TC-ST-10-02-021 |
| 2.3 Group Study Sessions | Cancel a scheduled session | TC-ST-10-02-022 |
| 2.3 Group Study Sessions | Session event logging (scheduled, attended, cancelled) | TC-ST-10-02-023 |
| 2.3 Group Study Sessions | Audit logging of the group study sessions | TC-ST-10-02-024 |
| 2.3 Group Study Sessions | Rule: A session has a topic and a time. | TC-ST-10-02-017 |
| 2.3 Group Study Sessions | Rule: Members receive a reminder for a scheduled session. | TC-ST-10-02-018 |
| 2.3 Group Study Sessions | Rule: Attendance is tracked per session. | TC-ST-10-02-019 |
| 2.3 Group Study Sessions | Rule: A session can be cancelled by the owner. | TC-ST-10-02-020 |
| 2.3 Group Study Sessions | Rule: Session events (scheduled, attended, cancelled) are logged with the group and the timestamp. | TC-ST-10-02-021 |
| 2.3 Group Study Sessions | Rule: The group study sessions is audit-logged with the account, the group, and the timestamp. | TC-ST-10-02-022 |

## 2.1 Study Group Creation and Membership

### TC-ST-10-02-001 — Create a study group with a name and topic
**Type:** Positive
**Covers:** 2.1 → Create a study group with a name and topic; Rule: A group requires a name and a topic.
**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 study group with a name and topic.
2. Observe the result and verify the full behavior: Create a study group with a name and topic.
**Expected Result:** Create a study group with a name and topic — delivered exactly as documented.
**Priority:** Critical

### TC-ST-10-02-002 — Invite classmates to a group
**Type:** Positive
**Covers:** 2.1 → Invite classmates to a group; Rule: Invites are sent to specific classmates.
**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: Invite classmates to a group.
2. Observe the result and verify the full behavior: Invite classmates to a group.
**Expected Result:** Invite classmates to a group — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-003 — Join a study group created by another Student
**Type:** Positive
**Covers:** 2.1 → Join a study group created by another Student; Rule: The group owner manages membership (add, remove).
**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: Join a study group created by another Student.
2. Observe the result and verify the full behavior: Join a study group created by another Student.
**Expected Result:** Join a study group created by another Student — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-004 — Group member list
**Type:** Positive
**Covers:** 2.1 → Group member list; Rule: A member can leave a group at any time.
**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: Group member list.
2. Observe the result and verify the full behavior: Group member list.
**Expected Result:** Group member list — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-005 — Group owner manages membership (add, remove)
**Type:** Positive
**Covers:** 2.1 → Group owner manages membership (add, remove); Rule: Group events (created, joined, left, member added/removed) are logged with the group 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: Group owner manages membership (add.
2. Observe the result and verify the full behavior: Group owner manages membership (add, remove).
**Expected Result:** Group owner manages membership (add, remove) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-006 — Leave a study group
**Type:** Positive
**Covers:** 2.1 → Leave a study group; Rule: The study group creation and membership is audit-logged with the account, the group, 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: Leave a study group.
2. Observe the result and verify the full behavior: Leave a study group.
**Expected Result:** Leave a study group — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-007 — Group list (owned and joined)
**Type:** Positive
**Covers:** 2.1 → Group list (owned and joined)
**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: Group list (owned and joined).
2. Observe the result and verify the full behavior: Group list (owned and joined).
**Expected Result:** Group list (owned and joined) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-008 — Group event logging (created, joined, left, member added/removed)
**Type:** Positive
**Covers:** 2.1 → Group event logging (created, joined, left, member added/removed)
**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: Group event logging (created.
2. Observe the result and verify the full behavior: Group event logging (created, joined, left, member added/removed).
**Expected Result:** Group event logging (created, joined, left, member added/removed) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-009 — Audit logging of the study group creation and membership
**Type:** Positive
**Covers:** 2.1 → Audit logging of the study group creation and membership
**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 study group creation and membership.
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 Group Collaboration

### TC-ST-10-02-010 — Shared group feed
**Type:** Positive
**Covers:** 2.2 → Shared group feed; Rule: Only group members can see and post to the group feed.
**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 group feed.
2. Observe the result and verify the full behavior: Shared group feed.
**Expected Result:** Shared group feed — delivered exactly as documented.
**Priority:** Critical

### TC-ST-10-02-011 — Share resources (notes, flashcards, links) in the group
**Type:** Positive
**Covers:** 2.2 → Share resources (notes, flashcards, links) in the group; Rule: Resources shared in the group are visible to members.
**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 resources (notes.
2. Observe the result and verify the full behavior: Share resources (notes, flashcards, links) in the group.
**Expected Result:** Share resources (notes, flashcards, links) in the group — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-012 — Group announcements by the owner
**Type:** Positive
**Covers:** 2.2 → Group announcements by the owner; Rule: Only the group owner can post announcements.
**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: Group announcements by the owner.
2. Observe the result and verify the full behavior: Group announcements by the owner.
**Expected Result:** Group announcements by the owner — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-013 — React to and comment on feed posts
**Type:** Positive
**Covers:** 2.2 → React to and comment on feed posts; Rule: Reactions and comments are recorded on the post.
**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: React to and comment on feed posts.
2. Observe the result and verify the full behavior: React to and comment on feed posts.
**Expected Result:** React to and comment on feed posts — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-014 — Group file/resource list
**Type:** Positive
**Covers:** 2.2 → Group file/resource list; Rule: Collaboration events (posted, shared, reacted) are logged with the group 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: Group file/resource list.
2. Observe the result and verify the full behavior: Group file/resource list.
**Expected Result:** Group file/resource list — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-015 — Collaboration event logging (posted, shared, reacted)
**Type:** Positive
**Covers:** 2.2 → Collaboration event logging (posted, shared, reacted); Rule: The group collaboration is audit-logged with the account, the group, 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: Collaboration event logging (posted.
2. Observe the result and verify the full behavior: Collaboration event logging (posted, shared, reacted).
**Expected Result:** Collaboration event logging (posted, shared, reacted) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-016 — Audit logging of the group collaboration
**Type:** Positive
**Covers:** 2.2 → Audit logging of the group collaboration
**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 group collaboration.
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 Group Study Sessions

### TC-ST-10-02-017 — Schedule a group study session (topic, time)
**Type:** Positive
**Covers:** 2.3 → Schedule a group study session (topic, time); Rule: A session has a topic and a time.
**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: Schedule a group study session (topic.
2. Observe the result and verify the full behavior: Schedule a group study session (topic, time).
**Expected Result:** Schedule a group study session (topic, time) — delivered exactly as documented.
**Priority:** Critical

### TC-ST-10-02-018 — Members receive a session reminder
**Type:** Positive
**Covers:** 2.3 → Members receive a session reminder; Rule: Members receive a reminder for a scheduled session.
**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: Members receive a session reminder.
2. Observe the result and verify the full behavior: Members receive a session reminder.
**Expected Result:** Members receive a session reminder — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-019 — Mark a session attended
**Type:** Positive
**Covers:** 2.3 → Mark a session attended; Rule: Attendance is tracked per session.
**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: Mark a session attended.
2. Observe the result and verify the full behavior: Mark a session attended.
**Expected Result:** Mark a session attended — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-020 — Session list (upcoming and past)
**Type:** Positive
**Covers:** 2.3 → Session list (upcoming and past); Rule: A session can be cancelled by the owner.
**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: Session list (upcoming and past).
2. Observe the result and verify the full behavior: Session list (upcoming and past).
**Expected Result:** Session list (upcoming and past) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-021 — Session attendance tracking
**Type:** Positive
**Covers:** 2.3 → Session attendance tracking; Rule: Session events (scheduled, attended, cancelled) are logged with the group 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: Session attendance tracking.
2. Observe the result and verify the full behavior: Session attendance tracking.
**Expected Result:** Session attendance tracking — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-022 — Cancel a scheduled session
**Type:** Positive
**Covers:** 2.3 → Cancel a scheduled session; Rule: The group study sessions is audit-logged with the account, the group, 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: Cancel a scheduled session.
2. Observe the result and verify the full behavior: Cancel a scheduled session.
**Expected Result:** Cancel a scheduled session — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-023 — Session event logging (scheduled, attended, cancelled)
**Type:** Positive
**Covers:** 2.3 → Session event logging (scheduled, attended, cancelled)
**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: Session event logging (scheduled.
2. Observe the result and verify the full behavior: Session event logging (scheduled, attended, cancelled).
**Expected Result:** Session event logging (scheduled, attended, cancelled) — delivered exactly as documented.
**Priority:** High

### TC-ST-10-02-024 — Audit logging of the group study sessions
**Type:** Positive
**Covers:** 2.3 → Audit logging of the group study sessions
**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 group study sessions.
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
