# 8.3 Deadline Reminders — Test Cases

User Type: **Corporate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: deadline_reminders.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.3.1 | Lead-time presets (7 / 3 / 1 days) | TC-COR-8-03-001 |
| 8.3.1 | Custom lead times | TC-COR-8-03-002 |
| 8.3.1 | Per-deadline-type configuration | TC-COR-8-03-003 |
| 8.3.1 | Reminder preview | TC-COR-8-03-004 |
| 8.3.1 | Available on web and mobile | TC-COR-8-03-005 |
| 8.3.1 | Event logging (viewed) | TC-COR-8-03-006 |
| 8.3.1 | Audit logging of the configurable reminders | TC-COR-8-03-007 |
| 8.3.1 | Rule: Each lead time fires at most once per deadline. | TC-COR-8-03-008 |
| 8.3.1 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-8-03-009 |
| 8.3.1 | Rule: The configurable reminders are audit-logged with the account and the timestamp. | TC-COR-8-03-010 |
| 8.3.2 | Channel selection (in-app, email, SMS) | TC-COR-8-03-011 |
| 8.3.2 | Per-channel opt-out | TC-COR-8-03-012 |
| 8.3.2 | Default channel set by the admin | TC-COR-8-03-013 |
| 8.3.2 | Channel delivery status | TC-COR-8-03-014 |
| 8.3.2 | Available on web and mobile | TC-COR-8-03-015 |
| 8.3.2 | Event logging (viewed) | TC-COR-8-03-016 |
| 8.3.2 | Audit logging of the reminder channels | TC-COR-8-03-017 |
| 8.3.2 | Rule: At least one channel must remain enabled. | TC-COR-8-03-018 |
| 8.3.2 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-8-03-019 |
| 8.3.2 | Rule: The reminder channels are audit-logged with the account and the timestamp. | TC-COR-8-03-020 |
| 8.3.3 | Quiet hours window per user | TC-COR-8-03-021 |
| 8.3.3 | Non-critical notifications held | TC-COR-8-03-022 |
| 8.3.3 | Critical (escalation) notifications always delivered | TC-COR-8-03-023 |
| 8.3.3 | Held-notification batch delivery | TC-COR-8-03-024 |
| 8.3.3 | Available on web and mobile | TC-COR-8-03-025 |
| 8.3.3 | Event logging (viewed) | TC-COR-8-03-026 |
| 8.3.3 | Audit logging of the quiet hours | TC-COR-8-03-027 |
| 8.3.3 | Rule: Escalation notifications are never held by quiet hours. | TC-COR-8-03-028 |
| 8.3.3 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-8-03-029 |
| 8.3.3 | Rule: The quiet hours are audit-logged with the account and the timestamp. | TC-COR-8-03-030 |


## 8.3.1 Configurable Reminders

### TC-COR-8-03-001 — Lead-time presets (7 / 3 / 1 days)

**Type:** Positive

**Covers:** 8.3.1 → Lead-time presets (7 / 3 / 1 days); Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Lead-time presets (7 / 3 / 1 days).

2. Observe the result and verify the full behavior: Lead-time presets (7 / 3 / 1 days).

**Expected Result:** Lead-time presets (7 / 3 / 1 days) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-002 — Custom lead times

**Type:** Positive

**Covers:** 8.3.1 → Custom lead times; Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Custom lead times.

2. Observe the result and verify the full behavior: Custom lead times.

**Expected Result:** Custom lead times — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-003 — Per-deadline-type configuration

**Type:** Positive

**Covers:** 8.3.1 → Per-deadline-type configuration; Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Per-deadline-type configuration.

2. Observe the result and verify the full behavior: Per-deadline-type configuration.

**Expected Result:** Per-deadline-type configuration — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-004 — Reminder preview

**Type:** Positive

**Covers:** 8.3.1 → Reminder preview; Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Reminder preview.

2. Observe the result and verify the full behavior: Reminder preview.

**Expected Result:** Reminder preview — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-005 — Available on web and mobile

**Type:** Positive

**Covers:** 8.3.1 → Available on web and mobile; Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-006 — Event logging (viewed)

**Type:** Positive

**Covers:** 8.3.1 → Event logging (viewed); Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-007 — Audit logging of the configurable reminders

**Type:** Positive

**Covers:** 8.3.1 → Audit logging of the configurable reminders; Rule: Each lead time fires at most once per deadline.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the configurable reminders.

2. Observe the result and verify the full behavior: Audit logging of the configurable reminders.

**Expected Result:** Audit logging of the configurable reminders — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-008 — Rule: Each lead time fires at most once per deadline.

**Type:** Positive

**Covers:** 8.3.1 → Each lead time fires at most once per deadline.; Rule: Each lead time fires at most once per deadline..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Each lead time fires at most once per deadline..

2. Observe the result and verify the full behavior: Each lead time fires at most once per deadline..

**Expected Result:** Each lead time fires at most once per deadline. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-009 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.1 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-010 — Rule: The configurable reminders are audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.1 → The configurable reminders are audit-logged with the account and the timestamp.; Rule: The configurable reminders are audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The configurable reminders are audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The configurable reminders are audit-logged with the account and the timestamp..

**Expected Result:** The configurable reminders are audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High


## 8.3.2 Reminder Channels

### TC-COR-8-03-011 — Channel selection (in-app, email, SMS)

**Type:** Positive

**Covers:** 8.3.2 → Channel selection (in-app, email, SMS); Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Channel selection (in-app, email, SMS).

2. Observe the result and verify the full behavior: Channel selection (in-app, email, SMS).

**Expected Result:** Channel selection (in-app, email, SMS) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-012 — Per-channel opt-out

**Type:** Positive

**Covers:** 8.3.2 → Per-channel opt-out; Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Per-channel opt-out.

2. Observe the result and verify the full behavior: Per-channel opt-out.

**Expected Result:** Per-channel opt-out — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-013 — Default channel set by the admin

**Type:** Positive

**Covers:** 8.3.2 → Default channel set by the admin; Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Default channel set by the admin.

2. Observe the result and verify the full behavior: Default channel set by the admin.

**Expected Result:** Default channel set by the admin — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-014 — Channel delivery status

**Type:** Positive

**Covers:** 8.3.2 → Channel delivery status; Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Channel delivery status.

2. Observe the result and verify the full behavior: Channel delivery status.

**Expected Result:** Channel delivery status — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-015 — Available on web and mobile

**Type:** Positive

**Covers:** 8.3.2 → Available on web and mobile; Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-016 — Event logging (viewed)

**Type:** Positive

**Covers:** 8.3.2 → Event logging (viewed); Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-017 — Audit logging of the reminder channels

**Type:** Positive

**Covers:** 8.3.2 → Audit logging of the reminder channels; Rule: At least one channel must remain enabled.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the reminder channels.

2. Observe the result and verify the full behavior: Audit logging of the reminder channels.

**Expected Result:** Audit logging of the reminder channels — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-018 — Rule: At least one channel must remain enabled.

**Type:** Positive

**Covers:** 8.3.2 → At least one channel must remain enabled.; Rule: At least one channel must remain enabled..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: At least one channel must remain enabled..

2. Observe the result and verify the full behavior: At least one channel must remain enabled..

**Expected Result:** At least one channel must remain enabled. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-019 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.2 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-020 — Rule: The reminder channels are audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.2 → The reminder channels are audit-logged with the account and the timestamp.; Rule: The reminder channels are audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The reminder channels are audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The reminder channels are audit-logged with the account and the timestamp..

**Expected Result:** The reminder channels are audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High


## 8.3.3 Quiet Hours

### TC-COR-8-03-021 — Quiet hours window per user

**Type:** Positive

**Covers:** 8.3.3 → Quiet hours window per user; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Quiet hours window per user.

2. Observe the result and verify the full behavior: Quiet hours window per user.

**Expected Result:** Quiet hours window per user — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-022 — Non-critical notifications held

**Type:** Positive

**Covers:** 8.3.3 → Non-critical notifications held; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Non-critical notifications held.

2. Observe the result and verify the full behavior: Non-critical notifications held.

**Expected Result:** Non-critical notifications held — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-023 — Critical (escalation) notifications always delivered

**Type:** Positive

**Covers:** 8.3.3 → Critical (escalation) notifications always delivered; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Critical (escalation) notifications always delivered.

2. Observe the result and verify the full behavior: Critical (escalation) notifications always delivered.

**Expected Result:** Critical (escalation) notifications always delivered — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-024 — Held-notification batch delivery

**Type:** Positive

**Covers:** 8.3.3 → Held-notification batch delivery; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Held-notification batch delivery.

2. Observe the result and verify the full behavior: Held-notification batch delivery.

**Expected Result:** Held-notification batch delivery — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-025 — Available on web and mobile

**Type:** Positive

**Covers:** 8.3.3 → Available on web and mobile; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-8-03-026 — Event logging (viewed)

**Type:** Positive

**Covers:** 8.3.3 → Event logging (viewed); Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-027 — Audit logging of the quiet hours

**Type:** Positive

**Covers:** 8.3.3 → Audit logging of the quiet hours; Rule: Escalation notifications are never held by quiet hours.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the quiet hours.

2. Observe the result and verify the full behavior: Audit logging of the quiet hours.

**Expected Result:** Audit logging of the quiet hours — delivered exactly as documented.

**Priority:** Medium

### TC-COR-8-03-028 — Rule: Escalation notifications are never held by quiet hours.

**Type:** Positive

**Covers:** 8.3.3 → Escalation notifications are never held by quiet hours.; Rule: Escalation notifications are never held by quiet hours..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Escalation notifications are never held by quiet hours..

2. Observe the result and verify the full behavior: Escalation notifications are never held by quiet hours..

**Expected Result:** Escalation notifications are never held by quiet hours. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-029 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.3 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-8-03-030 — Rule: The quiet hours are audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 8.3.3 → The quiet hours are audit-logged with the account and the timestamp.; Rule: The quiet hours are audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The quiet hours are audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The quiet hours are audit-logged with the account and the timestamp..

**Expected Result:** The quiet hours are audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High
