# 8. Preferences — Test Cases

User Type: **Organization**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: preferences.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 |
|---------|--------------------|----------|
| 8.1 | Enable/disable notification categories | TC-ORG-8-01-001 |
| 8.1 | Channel selection: in-app, email | TC-ORG-8-01-002 |
| 8.1 | Digest frequency selection | TC-ORG-8-01-003 |
| 8.1 | Quiet hours for non-critical alerts | TC-ORG-8-01-004 |
| 8.1 | Preference change history | TC-ORG-8-01-005 |
| 8.1 | Notification Preferences available on web and mobile | TC-ORG-8-01-006 |
| 8.1 | notification preferences event logging (viewed) | TC-ORG-8-01-007 |
| 8.1 | Audit logging of notification preferences | TC-ORG-8-01-008 |
| 8.1 | Rule: Enable/disable notification categories. | TC-ORG-8-01-009 |
| 8.1 | Rule: Channel selection: in-app, email. | TC-ORG-8-01-010 |
| 8.1 | Rule: Digest frequency selection. | TC-ORG-8-01-011 |
| 8.1 | Rule: Quiet hours for non-critical alerts. | TC-ORG-8-01-012 |
| 8.1 | Rule: Preference change history. | TC-ORG-8-01-013 |
| 8.2 | Subscribe per program or all programs | TC-ORG-8-02-014 |
| 8.2 | Update types: milestones, compliance, deadlines | TC-ORG-8-02-015 |
| 8.2 | Unsubscribe at any time | TC-ORG-8-02-016 |
| 8.2 | Subscription list management | TC-ORG-8-02-017 |
| 8.2 | Update delivery log | TC-ORG-8-02-018 |
| 8.2 | Program Update Subscriptions available on web and mobile | TC-ORG-8-02-019 |
| 8.2 | program update subscriptions event logging (viewed) | TC-ORG-8-02-020 |
| 8.2 | Audit logging of program update subscriptions | TC-ORG-8-02-021 |
| 8.2 | Rule: Subscribe per program or all programs. | TC-ORG-8-02-022 |
| 8.2 | Rule: Update types: milestones, compliance, deadlines. | TC-ORG-8-02-023 |
| 8.2 | Rule: Unsubscribe at any time. | TC-ORG-8-02-024 |
| 8.2 | Rule: Subscription list management. | TC-ORG-8-02-025 |
| 8.2 | Rule: Update delivery log. | TC-ORG-8-02-026 |

## 8.1 Notification Preferences

### TC-ORG-8-01-001 — Enable/disable notification categories
**Type:** Positive
**Covers:** 8.1 → Enable/disable notification categories; Rule: Enable/disable notification categories.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Enable/disable notification categories.
2. Observe the result and verify the full behavior: Enable/disable notification categories.
**Expected Result:** Enable/disable notification categories — delivered exactly as documented.
**Priority:** Critical

### TC-ORG-8-01-002 — Channel selection: in-app, email
**Type:** Positive
**Covers:** 8.1 → Channel selection: in-app, email; Rule: Channel selection: in-app, email.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Channel selection: in-app, email.
2. Observe the result and verify the full behavior: Channel selection: in-app, email.
**Expected Result:** Channel selection: in-app, email — delivered exactly as documented.
**Priority:** High

### TC-ORG-8-01-003 — Digest frequency selection
**Type:** Positive
**Covers:** 8.1 → Digest frequency selection; Rule: Digest frequency selection.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, 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:** Medium

### TC-ORG-8-01-004 — Quiet hours for non-critical alerts
**Type:** Positive
**Covers:** 8.1 → Quiet hours for non-critical alerts; Rule: Quiet hours for non-critical alerts.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Quiet hours for non-critical alerts.
2. Observe the result and verify the full behavior: Quiet hours for non-critical alerts.
**Expected Result:** Quiet hours for non-critical alerts — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-005 — Preference change history
**Type:** Positive
**Covers:** 8.1 → Preference change history; Rule: Preference change history.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Preference change history.
2. Observe the result and verify the full behavior: Preference change history.
**Expected Result:** Preference change history — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-006 — Notification Preferences available on web and mobile
**Type:** Positive
**Covers:** 8.1 → Notification Preferences available on web and mobile; Rule: Enable/disable notification categories.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Notification Preferences available on web and mobile.
2. Observe the result and verify the full behavior: Notification Preferences available on web and mobile.
**Expected Result:** Notification Preferences available on web and mobile — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-007 — notification preferences event logging (viewed)
**Type:** Positive
**Covers:** 8.1 → notification preferences event logging (viewed); Rule: Channel selection: in-app, email.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: notification preferences event logging (viewed).
2. Observe the result and verify the full behavior: notification preferences event logging (viewed).
**Expected Result:** notification preferences event logging (viewed) — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-008 — Audit logging of notification preferences
**Type:** Positive
**Covers:** 8.1 → Audit logging of notification preferences; Rule: Digest frequency selection.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Audit logging of notification preferences.
2. Observe the result and verify the full behavior: Audit logging of notification preferences.
**Expected Result:** Audit logging of notification preferences — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-009 — Rule: Enable/disable notification categories.
**Type:** Positive
**Covers:** 8.1 → Rule: Enable/disable notification categories.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Enable/disable notification categories.
2. Observe the result and verify the full behavior: Enable/disable notification categories.
**Expected Result:** Enable/disable notification categories. — delivered exactly as documented.
**Priority:** Critical

### TC-ORG-8-01-010 — Rule: Channel selection: in-app, email.
**Type:** Positive
**Covers:** 8.1 → Rule: Channel selection: in-app, email.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Channel selection: in-app, email.
2. Observe the result and verify the full behavior: Channel selection: in-app, email.
**Expected Result:** Channel selection: in-app, email. — delivered exactly as documented.
**Priority:** High

### TC-ORG-8-01-011 — Rule: Digest frequency selection.
**Type:** Positive
**Covers:** 8.1 → Rule: Digest frequency selection.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: 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:** Medium

### TC-ORG-8-01-012 — Rule: Quiet hours for non-critical alerts.
**Type:** Positive
**Covers:** 8.1 → Rule: Quiet hours for non-critical alerts.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Quiet hours for non-critical alerts.
2. Observe the result and verify the full behavior: Quiet hours for non-critical alerts.
**Expected Result:** Quiet hours for non-critical alerts. — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-01-013 — Rule: Preference change history.
**Type:** Positive
**Covers:** 8.1 → Rule: Preference change history.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Preference change history.
2. Observe the result and verify the full behavior: Preference change history.
**Expected Result:** Preference change history. — delivered exactly as documented.
**Priority:** Medium

## 8.2 Program Update Subscriptions

### TC-ORG-8-02-014 — Subscribe per program or all programs
**Type:** Positive
**Covers:** 8.2 → Subscribe per program or all programs; Rule: Subscribe per program or all programs.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Subscribe per program or all programs.
2. Observe the result and verify the full behavior: Subscribe per program or all programs.
**Expected Result:** Subscribe per program or all programs — delivered exactly as documented.
**Priority:** Critical

### TC-ORG-8-02-015 — Update types: milestones, compliance, deadlines
**Type:** Positive
**Covers:** 8.2 → Update types: milestones, compliance, deadlines; Rule: Update types: milestones, compliance, deadlines.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Update types: milestones, compliance, deadlines.
2. Observe the result and verify the full behavior: Update types: milestones, compliance, deadlines.
**Expected Result:** Update types: milestones, compliance, deadlines — delivered exactly as documented.
**Priority:** High

### TC-ORG-8-02-016 — Unsubscribe at any time
**Type:** Positive
**Covers:** 8.2 → Unsubscribe at any time; Rule: Unsubscribe at any time.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Unsubscribe at any time.
2. Observe the result and verify the full behavior: Unsubscribe at any time.
**Expected Result:** Unsubscribe at any time — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-017 — Subscription list management
**Type:** Positive
**Covers:** 8.2 → Subscription list management; Rule: Subscription list management.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Subscription list management.
2. Observe the result and verify the full behavior: Subscription list management.
**Expected Result:** Subscription list management — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-018 — Update delivery log
**Type:** Positive
**Covers:** 8.2 → Update delivery log; Rule: Update delivery log.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Update delivery log.
2. Observe the result and verify the full behavior: Update delivery log.
**Expected Result:** Update delivery log — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-019 — Program Update Subscriptions available on web and mobile
**Type:** Positive
**Covers:** 8.2 → Program Update Subscriptions available on web and mobile; Rule: Subscribe per program or all programs.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Program Update Subscriptions available on web and mobile.
2. Observe the result and verify the full behavior: Program Update Subscriptions available on web and mobile.
**Expected Result:** Program Update Subscriptions available on web and mobile — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-020 — program update subscriptions event logging (viewed)
**Type:** Positive
**Covers:** 8.2 → program update subscriptions event logging (viewed); Rule: Update types: milestones, compliance, deadlines.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: program update subscriptions event logging (viewed).
2. Observe the result and verify the full behavior: program update subscriptions event logging (viewed).
**Expected Result:** program update subscriptions event logging (viewed) — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-021 — Audit logging of program update subscriptions
**Type:** Positive
**Covers:** 8.2 → Audit logging of program update subscriptions; Rule: Unsubscribe at any time.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform: Audit logging of program update subscriptions.
2. Observe the result and verify the full behavior: Audit logging of program update subscriptions.
**Expected Result:** Audit logging of program update subscriptions — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-022 — Rule: Subscribe per program or all programs.
**Type:** Positive
**Covers:** 8.2 → Rule: Subscribe per program or all programs.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Subscribe per program or all programs.
2. Observe the result and verify the full behavior: Subscribe per program or all programs.
**Expected Result:** Subscribe per program or all programs. — delivered exactly as documented.
**Priority:** Critical

### TC-ORG-8-02-023 — Rule: Update types: milestones, compliance, deadlines.
**Type:** Positive
**Covers:** 8.2 → Rule: Update types: milestones, compliance, deadlines.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Update types: milestones, compliance, deadlines.
2. Observe the result and verify the full behavior: Update types: milestones, compliance, deadlines.
**Expected Result:** Update types: milestones, compliance, deadlines. — delivered exactly as documented.
**Priority:** High

### TC-ORG-8-02-024 — Rule: Unsubscribe at any time.
**Type:** Positive
**Covers:** 8.2 → Rule: Unsubscribe at any time.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Unsubscribe at any time.
2. Observe the result and verify the full behavior: Unsubscribe at any time.
**Expected Result:** Unsubscribe at any time. — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-025 — Rule: Subscription list management.
**Type:** Positive
**Covers:** 8.2 → Rule: Subscription list management.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Subscription list management.
2. Observe the result and verify the full behavior: Subscription list management.
**Expected Result:** Subscription list management. — delivered exactly as documented.
**Priority:** Medium

### TC-ORG-8-02-026 — Rule: Update delivery log.
**Type:** Positive
**Covers:** 8.2 → Rule: Update delivery log.
**Preconditions:** A Organization account is active and the Organization is in the state required for this behavior.
**Steps:**
1. As a Organization, set up the precondition and perform the action that triggers the rule: Update delivery log.
2. Observe the result and verify the full behavior: Update delivery log.
**Expected Result:** Update delivery log. — delivered exactly as documented.
**Priority:** Medium
