# 1. Notification Channels & Delivery — Test Cases

User Type: **Parent**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: notification_channels_delivery.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 |
|---------|--------------------|----------|
| 1.1 In-App Notifications | In-app notification center | TC-PT-10-01-001 |
| 1.1 In-App Notifications | Unread notification indicator | TC-PT-10-01-002 |
| 1.1 In-App Notifications | Deep link to the relevant content | TC-PT-10-01-003 |
| 1.1 In-App Notifications | Notification categories | TC-PT-10-01-004 |
| 1.1 In-App Notifications | Mark as read | TC-PT-10-01-005 |
| 1.1 In-App Notifications | In-app notifications available on web and mobile | TC-PT-10-01-006 |
| 1.1 In-App Notifications | Notification event logging (received, read) | TC-PT-10-01-007 |
| 1.1 In-App Notifications | Audit logging of the in-app notifications | TC-PT-10-01-008 |
| 1.1 In-App Notifications | Rule: The notifications are in the in-app center. | TC-PT-10-01-001 |
| 1.1 In-App Notifications | Rule: An unread indicator is shown. | TC-PT-10-01-002 |
| 1.1 In-App Notifications | Rule: A deep link opens the relevant content. | TC-PT-10-01-003 |
| 1.1 In-App Notifications | Rule: Notification events (received, read) are logged with the account and the timestamp. | TC-PT-10-01-004 |
| 1.1 In-App Notifications | Rule: The in-app notifications is audit-logged with the account and the timestamp. | TC-PT-10-01-005 |
| 1.2 Email Notifications | Email notifications for the Parent | TC-PT-10-01-009 |
| 1.2 Email Notifications | Digest of notifications by email | TC-PT-10-01-010 |
| 1.2 Email Notifications | Critical alerts by email | TC-PT-10-01-011 |
| 1.2 Email Notifications | Reports by email | TC-PT-10-01-012 |
| 1.2 Email Notifications | Enable or disable email notifications | TC-PT-10-01-013 |
| 1.2 Email Notifications | Digest frequency selection | TC-PT-10-01-014 |
| 1.2 Email Notifications | Email event logging (sent, opened) | TC-PT-10-01-015 |
| 1.2 Email Notifications | Audit logging of the email notifications | TC-PT-10-01-016 |
| 1.2 Email Notifications | Rule: The email notifications include digests, alerts, and reports. | TC-PT-10-01-009 |
| 1.2 Email Notifications | Rule: Email notifications can be enabled or disabled. | TC-PT-10-01-010 |
| 1.2 Email Notifications | Rule: The digest frequency is selectable. | TC-PT-10-01-011 |
| 1.2 Email Notifications | Rule: Email events (sent, opened) are logged with the account and the timestamp. | TC-PT-10-01-012 |
| 1.2 Email Notifications | Rule: The email notifications is audit-logged with the account and the timestamp. | TC-PT-10-01-013 |
| 1.3 Push and SMS Notifications | Push notifications on the mobile app | TC-PT-10-01-017 |
| 1.3 Push and SMS Notifications | SMS notifications | TC-PT-10-01-018 |
| 1.3 Push and SMS Notifications | Time-sensitive alerts via push and SMS | TC-PT-10-01-019 |
| 1.3 Push and SMS Notifications | Enable or disable push and SMS | TC-PT-10-01-020 |
| 1.3 Push and SMS Notifications | Per-alert-type channel selection | TC-PT-10-01-021 |
| 1.3 Push and SMS Notifications | Delivery confirmation | TC-PT-10-01-022 |
| 1.3 Push and SMS Notifications | Notification event logging (sent, delivered) | TC-PT-10-01-023 |
| 1.3 Push and SMS Notifications | Audit logging of the push and SMS notifications | TC-PT-10-01-024 |
| 1.3 Push and SMS Notifications | Rule: The push and SMS are for time-sensitive alerts. | TC-PT-10-01-017 |
| 1.3 Push and SMS Notifications | Rule: Push and SMS can be enabled or disabled. | TC-PT-10-01-018 |
| 1.3 Push and SMS Notifications | Rule: The alert types per channel are selectable. | TC-PT-10-01-019 |
| 1.3 Push and SMS Notifications | Rule: Notification events (sent, delivered) are logged with the account and the timestamp. | TC-PT-10-01-020 |
| 1.3 Push and SMS Notifications | Rule: The push and SMS notifications is audit-logged with the account and the timestamp. | TC-PT-10-01-021 |

## 1.1 In-App Notifications

### TC-PT-10-01-001 — In-app notification center
**Type:** Positive
**Covers:** 1.1 → In-app notification center; Rule: The notifications are in the in-app center.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: In-app notification center.
2. Observe the result and verify the full behavior: In-app notification center.
**Expected Result:** In-app notification center — delivered exactly as documented.
**Priority:** Critical

### TC-PT-10-01-002 — Unread notification indicator
**Type:** Positive
**Covers:** 1.1 → Unread notification indicator; Rule: An unread indicator is shown.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Unread notification indicator.
2. Observe the result and verify the full behavior: Unread notification indicator.
**Expected Result:** Unread notification indicator — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-003 — Deep link to the relevant content
**Type:** Positive
**Covers:** 1.1 → Deep link to the relevant content; Rule: A deep link opens the relevant content.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Deep link to the relevant content.
2. Observe the result and verify the full behavior: Deep link to the relevant content.
**Expected Result:** Deep link to the relevant content — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-004 — Notification categories
**Type:** Positive
**Covers:** 1.1 → Notification categories; Rule: Notification events (received, read) are logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Notification categories.
2. Observe the result and verify the full behavior: Notification categories.
**Expected Result:** Notification categories — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-005 — Mark as read
**Type:** Positive
**Covers:** 1.1 → Mark as read; Rule: The in-app notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Mark as read.
2. Observe the result and verify the full behavior: Mark as read.
**Expected Result:** Mark as read — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-006 — In-app notifications available on web and mobile
**Type:** Positive
**Covers:** 1.1 → In-app notifications available on web and mobile
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: In-app notifications available on web and mobile.
2. Observe the result and verify the full behavior: In-app notifications available on web and mobile.
**Expected Result:** In-app notifications available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-007 — Notification event logging (received, read)
**Type:** Positive
**Covers:** 1.1 → Notification event logging (received, read)
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Notification event logging (received.
2. Observe the result and verify the full behavior: Notification event logging (received, read).
**Expected Result:** Notification event logging (received, read) — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-008 — Audit logging of the in-app notifications
**Type:** Positive
**Covers:** 1.1 → Audit logging of the in-app notifications
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the in-app 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

## 1.2 Email Notifications

### TC-PT-10-01-009 — Email notifications for the Parent
**Type:** Positive
**Covers:** 1.2 → Email notifications for the Parent; Rule: The email notifications include digests, alerts, and reports.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Email notifications for the Parent.
2. Observe the result and verify the full behavior: Email notifications for the Parent.
**Expected Result:** Email notifications for the Parent — delivered exactly as documented.
**Priority:** Critical

### TC-PT-10-01-010 — Digest of notifications by email
**Type:** Positive
**Covers:** 1.2 → Digest of notifications by email; Rule: Email notifications can be enabled or disabled.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Digest of notifications by email.
2. Observe the result and verify the full behavior: Digest of notifications by email.
**Expected Result:** Digest of notifications by email — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-011 — Critical alerts by email
**Type:** Positive
**Covers:** 1.2 → Critical alerts by email; Rule: The digest frequency is selectable.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Critical alerts by email.
2. Observe the result and verify the full behavior: Critical alerts by email.
**Expected Result:** Critical alerts by email — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-012 — Reports by email
**Type:** Positive
**Covers:** 1.2 → Reports by email; Rule: Email events (sent, opened) are logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Reports by email.
2. Observe the result and verify the full behavior: Reports by email.
**Expected Result:** Reports by email — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-013 — Enable or disable email notifications
**Type:** Positive
**Covers:** 1.2 → Enable or disable email notifications; Rule: The email notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Enable or disable email notifications.
2. Observe the result and verify the full behavior: Enable or disable email notifications.
**Expected Result:** Enable or disable email notifications — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-014 — Digest frequency selection
**Type:** Positive
**Covers:** 1.2 → Digest frequency selection
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Digest frequency selection.
2. Observe the result and verify the full behavior: Digest frequency selection.
**Expected Result:** Digest frequency selection — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-015 — Email event logging (sent, opened)
**Type:** Positive
**Covers:** 1.2 → Email event logging (sent, opened)
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Email event logging (sent.
2. Observe the result and verify the full behavior: Email event logging (sent, opened).
**Expected Result:** Email event logging (sent, opened) — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-016 — Audit logging of the email notifications
**Type:** Positive
**Covers:** 1.2 → Audit logging of the email notifications
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the email 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

## 1.3 Push and SMS Notifications

### TC-PT-10-01-017 — Push notifications on the mobile app
**Type:** Positive
**Covers:** 1.3 → Push notifications on the mobile app; Rule: The push and SMS are for time-sensitive alerts.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Push notifications on the mobile app.
2. Observe the result and verify the full behavior: Push notifications on the mobile app.
**Expected Result:** Push notifications on the mobile app — delivered exactly as documented.
**Priority:** Critical

### TC-PT-10-01-018 — SMS notifications
**Type:** Positive
**Covers:** 1.3 → SMS notifications; Rule: Push and SMS can be enabled or disabled.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: SMS notifications.
2. Observe the result and verify the full behavior: SMS notifications.
**Expected Result:** SMS notifications — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-019 — Time-sensitive alerts via push and SMS
**Type:** Positive
**Covers:** 1.3 → Time-sensitive alerts via push and SMS; Rule: The alert types per channel are selectable.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Time-sensitive alerts via push and SMS.
2. Observe the result and verify the full behavior: Time-sensitive alerts via push and SMS.
**Expected Result:** Time-sensitive alerts via push and SMS — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-020 — Enable or disable push and SMS
**Type:** Positive
**Covers:** 1.3 → Enable or disable push and SMS; Rule: Notification events (sent, delivered) are logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Enable or disable push and SMS.
2. Observe the result and verify the full behavior: Enable or disable push and SMS.
**Expected Result:** Enable or disable push and SMS — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-021 — Per-alert-type channel selection
**Type:** Positive
**Covers:** 1.3 → Per-alert-type channel selection; Rule: The push and SMS notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Per-alert-type channel selection.
2. Observe the result and verify the full behavior: Per-alert-type channel selection.
**Expected Result:** Per-alert-type channel selection — delivered exactly as documented.
**Priority:** High

### TC-PT-10-01-022 — Delivery confirmation
**Type:** Positive
**Covers:** 1.3 → Delivery confirmation
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Delivery confirmation.
2. Observe the result and verify the full behavior: Delivery confirmation.
**Expected Result:** Delivery confirmation — delivered exactly as documented.
**Priority:** High

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

### TC-PT-10-01-024 — Audit logging of the push and SMS notifications
**Type:** Positive
**Covers:** 1.3 → Audit logging of the push and SMS notifications
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the push and SMS 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
