# 2. Parent Report Automation — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: parent_report_automation.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 |
|---------|--------------------|----------|
| 2.1 Daily Activity Summary (Optional) | Enable/disable: the daily summary toggled on or off | TC-SA-AR-02-001 |
| 2.1 Daily Activity Summary (Optional) | Segment scoping: which parent/student segments receive the daily summary | TC-SA-AR-02-002 |
| 2.1 Daily Activity Summary (Optional) | Content selection: time spent online, completed activities, assessment scores, concerns flagged | TC-SA-AR-02-003 |
| 2.1 Daily Activity Summary (Optional) | Delivery time: the daily delivery time and timezone | TC-SA-AR-02-004 |
| 2.1 Daily Activity Summary (Optional) | Opt-in/opt-out: parent-level opt-in and opt-out honored | TC-SA-AR-02-005 |
| 2.1 Daily Activity Summary (Optional) | Rule: the daily summary is off by default and only delivered where enabled and opted-in | TC-SA-AR-02-006 |
| 2.1 Daily Activity Summary (Optional) | Rule: a parent who opts out is excluded immediately | TC-SA-AR-02-005 |
| 2.1 Daily Activity Summary (Optional) | Rule: a day with no activity produces a minimal digest, not skipped | TC-SA-AR-02-007 |
| 2.1 Daily Activity Summary (Optional) | Rule: sensitive concerns route through the critical alert flow instead | TC-SA-AR-02-008 |
| 2.1 Daily Activity Summary (Optional) | Rule: configuration changes are audit-logged | TC-SA-AR-02-009 |
| 2.2 Weekly Parent Newsletter | Weekly cadence: the newsletter day and time | TC-SA-AR-02-010 |
| 2.2 Weekly Parent Newsletter | Progress highlights: the week's key progress items | TC-SA-AR-02-011 |
| 2.2 Weekly Parent Newsletter | Upcoming deadlines: upcoming exams, assignments, and events | TC-SA-AR-02-012 |
| 2.2 Weekly Parent Newsletter | Teacher notes: teacher-added notes for the child | TC-SA-AR-02-013 |
| 2.2 Weekly Parent Newsletter | Platform announcements: relevant platform announcements | TC-SA-AR-02-014 |
| 2.2 Weekly Parent Newsletter | Personalization: the newsletter personalized per child | TC-SA-AR-02-015 |
| 2.2 Weekly Parent Newsletter | Rule: a parent with multiple children receives one newsletter with a section per child | TC-SA-AR-02-016 |
| 2.2 Weekly Parent Newsletter | Rule: a week with no teacher notes shows an empty section, not an error | TC-SA-AR-02-017 |
| 2.2 Weekly Parent Newsletter | Rule: the newsletter is generated only for active enrollments | TC-SA-AR-02-018 |
| 2.2 Weekly Parent Newsletter | Rule: cadence changes take effect from the next scheduled run | TC-SA-AR-02-019 |
| 2.2 Weekly Parent Newsletter | Rule: configuration changes are audit-logged | TC-SA-AR-02-020 |
| 2.3 Critical Alert Triggers | Low performance trigger: alert when scores fall below the threshold | TC-SA-AR-02-021 |
| 2.3 Critical Alert Triggers | Missed sessions trigger: alert when scheduled live sessions are missed | TC-SA-AR-02-022 |
| 2.3 Critical Alert Triggers | Engagement drop trigger: alert when activity falls below the baseline | TC-SA-AR-02-023 |
| 2.3 Critical Alert Triggers | Access issues trigger: alert on login failures, subscription lapses, device problems | TC-SA-AR-02-024 |
| 2.3 Critical Alert Triggers | Trigger enable/disable: each trigger toggled on or off | TC-SA-AR-02-025 |
| 2.3 Critical Alert Triggers | Alert content: the alert message with condition, evidence, and suggested action | TC-SA-AR-02-026 |
| 2.3 Critical Alert Triggers | Rule: each trigger is independent; disabling one does not affect the others | TC-SA-AR-02-027 |
| 2.3 Critical Alert Triggers | Rule: a trigger fires only when its condition is met; borderline values do not fire | TC-SA-AR-02-028 |
| 2.3 Critical Alert Triggers | Rule: repeated conditions are deduplicated per alert period | TC-SA-AR-02-029 |
| 2.3 Critical Alert Triggers | Rule: access issue alerts include the specific issue | TC-SA-AR-02-030 |
| 2.3 Critical Alert Triggers | Rule: trigger configuration changes are audit-logged | TC-SA-AR-02-031 |
| 2.4 Parent Alert Delivery & Preferences | Channel configuration: push, email, and in-app channels for parent alerts | TC-SA-AR-02-032 |
| 2.4 Parent Alert Delivery & Preferences | Critical alert override: critical alerts delivered on all enabled channels | TC-SA-AR-02-033 |
| 2.4 Parent Alert Delivery & Preferences | Parent preference controls: parent-level channel and frequency preferences | TC-SA-AR-02-034 |
| 2.4 Parent Alert Delivery & Preferences | Quiet hours: parent-level quiet hours honored for non-critical alerts | TC-SA-AR-02-035 |
| 2.4 Parent Alert Delivery & Preferences | Delivery tracking: per-alert delivery state (sent, delivered, failed) | TC-SA-AR-02-036 |
| 2.4 Parent Alert Delivery & Preferences | Rule: critical alerts bypass quiet hours and mute preferences | TC-SA-AR-02-037 |
| 2.4 Parent Alert Delivery & Preferences | Rule: non-critical alerts respect quiet hours and channel preferences | TC-SA-AR-02-038 |
| 2.4 Parent Alert Delivery & Preferences | Rule: a parent with no reachable channel is flagged for follow-up | TC-SA-AR-02-039 |
| 2.4 Parent Alert Delivery & Preferences | Rule: delivery configuration changes are audit-logged | TC-SA-AR-02-040 |

### TC-SA-AR-02-001 — Enable/disable: the daily summary toggled on or off
**Type:** Positive
**Covers:** 2.1 → Enable/disable: the daily summary toggled on or off (optional feature)
**Preconditions:** A Super Admin account is active; the daily summary is currently disabled.
**Steps:**
1. As a Super Admin, open Parent Report Automation and enable the Daily Activity Summary.
2. Save and await the next delivery time.
3. Observe the result and verify the full behavior: the daily digest is delivered to opted-in parents in the scoped segments.
**Expected Result:** The daily summary is toggled on — the digest is delivered as configured, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-002 — Segment scoping: which parent/student segments receive the daily summary
**Type:** Positive
**Covers:** 2.1 → Segment scoping: which parent/student segments receive the daily summary
**Preconditions:** A Super Admin account is active; parents exist across multiple segments.
**Steps:**
1. As a Super Admin, scope the daily summary to one segment and save.
2. Await the delivery time.
3. Observe the result and verify the full behavior: only parents in the scoped segment receive the digest.
**Expected Result:** The segment scoping is applied — only the scoped segment receives the daily summary, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-003 — Content selection: time spent online, completed activities, assessment scores, concerns flagged
**Type:** Positive
**Covers:** 2.1 → Content selection: time spent online, completed activities, assessment scores, concerns flagged
**Preconditions:** A Super Admin account is active; a student has activity data for the day.
**Steps:**
1. As a Super Admin, select the content blocks and save.
2. Await the delivery and open a sample digest.
3. Observe the result and verify the full behavior: the digest contains exactly the selected blocks with correct data.
**Expected Result:** The content selection is applied — the digest contains the selected blocks with correct data, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-004 — Delivery time: the daily delivery time and timezone
**Type:** Positive
**Covers:** 2.1 → Delivery time: the daily delivery time and timezone
**Preconditions:** A Super Admin account is active; the daily summary is enabled.
**Steps:**
1. As a Super Admin, set the delivery time and timezone and save.
2. Await the delivery.
3. Observe the result and verify the full behavior: the digest is delivered at the configured time in the configured timezone.
**Expected Result:** The delivery time is applied — the digest arrives at the configured time and timezone, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-005 — Opt-in/opt-out: parent-level opt-in and opt-out honored; a parent who opts out is excluded immediately
**Type:** Positive
**Covers:** 2.1 → Opt-in/opt-out: parent-level opt-in and opt-out honored; Rule: a parent who opts out is excluded immediately
**Preconditions:** A Super Admin account is active; a parent is opted in to the daily summary.
**Steps:**
1. As a parent (via the preference control), opt out of the daily summary.
2. Await the next delivery time.
3. Observe the result and verify the full behavior: no further daily digests are sent to the opted-out parent.
**Expected Result:** The opt-out is honored immediately — no further digests are sent, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-006 — Rule: the daily summary is off by default and only delivered where enabled and opted-in
**Type:** Negative
**Covers:** 2.1 → Rule: the daily summary is optional; it is off by default and only delivered where enabled and opted-in
**Preconditions:** A Super Admin account is active; the daily summary has never been enabled.
**Steps:**
1. As a Super Admin, confirm the daily summary is off by default.
2. Await a delivery time.
3. Observe the result and verify the full behavior: no daily digest is delivered anywhere.
**Expected Result:** The daily summary is off by default — no digest is delivered where not enabled, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-007 — Rule: a day with no activity produces a minimal digest, not skipped
**Type:** Positive
**Covers:** 2.1 → Rule: a day with no student activity produces a minimal digest ("no activity today") rather than being skipped
**Preconditions:** A Super Admin account is active; an opted-in parent's child had no activity the previous day.
**Steps:**
1. As a Super Admin, confirm the child had no activity.
2. Await the delivery time.
3. Observe the result and verify the full behavior: the parent receives a minimal digest indicating no activity.
**Expected Result:** The minimal digest is delivered — "no activity today" is shown rather than the digest being skipped, delivered exactly as documented.
**Priority:** Medium

### TC-SA-AR-02-008 — Rule: sensitive concerns route through the critical alert flow instead
**Type:** Positive
**Covers:** 2.1 → Rule: concerns flagged in the digest are limited to non-sensitive items; sensitive items route through the critical alert flow
**Preconditions:** A Super Admin account is active; a sensitive concern is flagged for a student.
**Steps:**
1. As a Super Admin, confirm the sensitive concern is flagged.
2. Await the daily digest delivery.
3. Observe the result and verify the full behavior: the sensitive item is not in the digest; it is raised through the critical alert flow.
**Expected Result:** The sensitive concern is excluded from the digest — it routes through the critical alert flow, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-009 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 2.1 → Audit logging of daily summary configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the daily summary configuration and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-010 — Weekly cadence: the newsletter day and time
**Type:** Positive
**Covers:** 2.2 → Weekly cadence: the newsletter day and time
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, set the newsletter day and time and save.
2. Await the scheduled run.
3. Observe the result and verify the full behavior: the newsletter is generated and delivered on the configured day and time.
**Expected Result:** The weekly cadence is applied — the newsletter runs on the configured day and time, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-011 — Progress highlights: the week's key progress items
**Type:** Positive
**Covers:** 2.2 → Progress highlights: the week's key progress items
**Preconditions:** A Super Admin account is active; a child has progress data for the week.
**Steps:**
1. As a Super Admin, include the progress highlights section and await the newsletter.
2. Open the generated newsletter.
3. Observe the result and verify the full behavior: the newsletter contains the week's key progress items.
**Expected Result:** The progress highlights are present — the week's key items are shown, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-012 — Upcoming deadlines: upcoming exams, assignments, and events
**Type:** Positive
**Covers:** 2.2 → Upcoming deadlines: upcoming exams, assignments, and events
**Preconditions:** A Super Admin account is active; a child has upcoming deadlines.
**Steps:**
1. As a Super Admin, include the deadlines section and await the newsletter.
2. Open the generated newsletter.
3. Observe the result and verify the full behavior: the newsletter lists the upcoming exams, assignments, and events.
**Expected Result:** The upcoming deadlines are present — the correct deadlines are listed, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-013 — Teacher notes: teacher-added notes for the child
**Type:** Positive
**Covers:** 2.2 → Teacher notes: teacher-added notes for the child
**Preconditions:** A Super Admin account is active; a teacher added a note for the child this week.
**Steps:**
1. As a Super Admin, include the teacher notes section and await the newsletter.
2. Open the generated newsletter.
3. Observe the result and verify the full behavior: the newsletter contains the teacher's note.
**Expected Result:** The teacher notes are present — the teacher-added note appears in the newsletter, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-014 — Platform announcements: relevant platform announcements
**Type:** Positive
**Covers:** 2.2 → Platform announcements: relevant platform announcements
**Preconditions:** A Super Admin account is active; a platform announcement is active for the week.
**Steps:**
1. As a Super Admin, include the announcements section and await the newsletter.
2. Open the generated newsletter.
3. Observe the result and verify the full behavior: the newsletter contains the relevant platform announcement.
**Expected Result:** The platform announcements are present — the relevant announcement appears, delivered exactly as documented.
**Priority:** Medium

### TC-SA-AR-02-015 — Personalization: the newsletter personalized per child
**Type:** Positive
**Covers:** 2.2 → Personalization: the newsletter personalized per child
**Preconditions:** A Super Admin account is active; two children with different data belong to the same parent.
**Steps:**
1. As a Super Admin, await the newsletter delivery.
2. Open the parent's newsletter.
3. Observe the result and verify the full behavior: each child's section reflects that child's own data.
**Expected Result:** The newsletter is personalized per child — each section reflects the correct child's data, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-016 — Rule: a parent with multiple children receives one newsletter with a section per child
**Type:** Positive
**Covers:** 2.2 → Rule: a parent with multiple children receives one newsletter containing a section per child, not one newsletter per child
**Preconditions:** A Super Admin account is active; a parent has two children.
**Steps:**
1. As a Super Admin, await the newsletter delivery.
2. Check the parent's inbox.
3. Observe the result and verify the full behavior: exactly one newsletter arrives, containing a section per child.
**Expected Result:** One newsletter with a section per child — no per-child duplication, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-017 — Rule: a week with no teacher notes shows an empty section, not an error
**Type:** Positive
**Covers:** 2.2 → Rule: a week with no teacher notes shows an empty teacher-notes section, not an error
**Preconditions:** A Super Admin account is active; no teacher notes were added this week.
**Steps:**
1. As a Super Admin, await the newsletter delivery.
2. Open the generated newsletter.
3. Observe the result and verify the full behavior: the teacher-notes section is empty (or marked "no notes"), with no error.
**Expected Result:** The empty teacher-notes section is shown — no error is raised, delivered exactly as documented.
**Priority:** Medium

### TC-SA-AR-02-018 — Rule: the newsletter is generated only for active enrollments
**Type:** Positive
**Covers:** 2.2 → Rule: the newsletter is generated only for active enrollments; a lapsed enrollment is excluded
**Preconditions:** A Super Admin account is active; a child's enrollment has lapsed.
**Steps:**
1. As a Super Admin, confirm the enrollment is lapsed.
2. Await the newsletter delivery.
3. Observe the result and verify the full behavior: no newsletter section is generated for the lapsed enrollment.
**Expected Result:** The lapsed enrollment is excluded — no newsletter is generated for it, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-019 — Rule: cadence changes take effect from the next scheduled run
**Type:** Positive
**Covers:** 2.2 → Rule: cadence changes take effect from the next scheduled run
**Preconditions:** A Super Admin account is active; a newsletter run is in progress.
**Steps:**
1. As a Super Admin, change the cadence mid-run and save.
2. Observe the in-progress run to completion.
3. Observe the result and verify the full behavior: the in-progress run completes under the old cadence; the new cadence applies next run.
**Expected Result:** The cadence change takes effect from the next run — the in-progress run is unaffected, delivered exactly as documented.
**Priority:** Medium

### TC-SA-AR-02-020 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 2.2 → Audit logging of weekly newsletter configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the newsletter configuration and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-021 — Low performance trigger: alert when scores fall below the threshold
**Type:** Positive
**Covers:** 2.3 → Low performance trigger: alert when assessment scores fall below the configured threshold
**Preconditions:** A Super Admin account is active; the low performance trigger is enabled with a threshold of 40%.
**Steps:**
1. As a Super Admin, confirm a student scores 35% on an assessment.
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: a critical alert is raised to the parent with the condition, evidence, and suggested action.
**Expected Result:** The low performance trigger fires — the parent receives the critical alert with evidence, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-022 — Missed sessions trigger: alert when scheduled live sessions are missed
**Type:** Positive
**Covers:** 2.3 → Missed sessions trigger: alert when scheduled live sessions are missed
**Preconditions:** A Super Admin account is active; the missed sessions trigger is enabled.
**Steps:**
1. As a Super Admin, confirm a student misses a scheduled live session.
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: a critical alert is raised to the parent for the missed session.
**Expected Result:** The missed sessions trigger fires — the parent is alerted about the missed session, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-023 — Engagement drop trigger: alert when activity falls below the baseline
**Type:** Positive
**Covers:** 2.3 → Engagement drop trigger: alert when activity falls below the configured engagement baseline
**Preconditions:** A Super Admin account is active; the engagement drop trigger is enabled with a baseline.
**Steps:**
1. As a Super Admin, confirm a student's activity falls below the baseline for the evaluation period.
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: a critical alert is raised to the parent for the engagement drop.
**Expected Result:** The engagement drop trigger fires — the parent is alerted about the engagement drop, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-024 — Access issues trigger: alert on login failures, subscription lapses, device problems
**Type:** Positive
**Covers:** 2.3 → Access issues trigger: alert on login failures, subscription lapses, or device access problems
**Preconditions:** A Super Admin account is active; the access issues trigger is enabled.
**Steps:**
1. As a Super Admin, confirm a student's subscription lapses.
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: a critical alert is raised to the parent specifying the access issue.
**Expected Result:** The access issues trigger fires — the parent is alerted with the specific access issue, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-025 — Trigger enable/disable: each trigger toggled on or off
**Type:** Positive
**Covers:** 2.3 → Trigger enable/disable: each trigger toggled on or off
**Preconditions:** A Super Admin account is active; all triggers are enabled.
**Steps:**
1. As a Super Admin, disable the engagement drop trigger and save.
2. Confirm a student's activity falls below the baseline.
3. Observe the result and verify the full behavior: no engagement drop alert is raised; the other triggers remain active.
**Expected Result:** The trigger is toggled off — no alert is raised for the disabled trigger, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-026 — Alert content: the alert message with condition, evidence, and suggested action
**Type:** Positive
**Covers:** 2.3 → Alert content: the alert message with the condition, evidence, and suggested action
**Preconditions:** A Super Admin account is active; a critical alert has been raised.
**Steps:**
1. As a Super Admin, open the raised alert.
2. Observe the result and verify the full behavior: the alert contains the condition, the evidence, and a suggested action.
**Expected Result:** The alert content is complete — condition, evidence, and suggested action are all present, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-027 — Rule: each trigger is independent; disabling one does not affect the others
**Type:** Positive
**Covers:** 2.3 → Rule: each trigger is independent; disabling one does not affect the others
**Preconditions:** A Super Admin account is active; the low performance trigger is disabled; the missed sessions trigger is enabled.
**Steps:**
1. As a Super Admin, confirm a student misses a session.
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: the missed sessions alert fires despite the low performance trigger being disabled.
**Expected Result:** The triggers are independent — the enabled trigger fires regardless of the disabled one, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-028 — Rule: a trigger fires only when its condition is met; borderline values do not fire
**Type:** Negative
**Covers:** 2.3 → Rule: a trigger fires only when its condition is met; borderline values that do not cross the threshold do not fire
**Preconditions:** A Super Admin account is active; the low performance threshold is 40%.
**Steps:**
1. As a Super Admin, confirm a student scores exactly 40% (not below).
2. Await the trigger evaluation.
3. Observe the result and verify the full behavior: no low performance alert is raised.
**Expected Result:** The trigger does not fire — the borderline value that does not cross the threshold raises no alert, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-029 — Rule: repeated conditions are deduplicated per alert period
**Type:** Positive
**Covers:** 2.3 → Rule: repeated conditions for the same student are deduplicated per alert period; the parent is not spammed
**Preconditions:** A Super Admin account is active; a student's low condition persists across the alert period.
**Steps:**
1. As a Super Admin, observe the alert period for the student.
2. Check the parent's alerts.
3. Observe the result and verify the full behavior: only one alert is raised for the condition within the period.
**Expected Result:** The alert is deduplicated — one alert per condition per period, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-030 — Rule: access issue alerts include the specific issue
**Type:** Positive
**Covers:** 2.3 → Rule: access issue alerts include the specific issue (login failure, lapse, device problem) so the parent can act
**Preconditions:** A Super Admin account is active; a student has repeated login failures.
**Steps:**
1. As a Super Admin, confirm the login failures.
2. Await the alert.
3. Observe the result and verify the full behavior: the alert specifies "login failure" as the issue.
**Expected Result:** The alert includes the specific issue — the parent can see exactly what the access problem is, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-031 — Rule: trigger configuration changes are audit-logged
**Type:** Positive
**Covers:** 2.3 → Audit logging of critical alert trigger configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change a trigger threshold and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The trigger configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-032 — Channel configuration: push, email, and in-app channels for parent alerts
**Type:** Positive
**Covers:** 2.4 → Channel configuration: push, email, and in-app channels for parent alerts
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, configure the parent alert channels (push, email, in-app) and save.
2. Trigger a test alert.
3. Observe the result and verify the full behavior: the alert is delivered on the configured channels.
**Expected Result:** The channel configuration is applied — the alert is delivered on the configured channels, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-033 — Critical alert override: critical alerts delivered on all enabled channels
**Type:** Positive
**Covers:** 2.4 → Critical alert override: critical alerts delivered on all enabled channels regardless of non-critical preferences
**Preconditions:** A Super Admin account is active; all channels are enabled; a parent muted non-critical email alerts.
**Steps:**
1. As a Super Admin, trigger a critical alert for the parent's child.
2. Check the parent's email.
3. Observe the result and verify the full behavior: the critical alert is delivered by email despite the non-critical mute.
**Expected Result:** The critical alert override works — the critical alert is delivered on all enabled channels, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-034 — Parent preference controls: parent-level channel and frequency preferences
**Type:** Positive
**Covers:** 2.4 → Parent preference controls: parent-level channel and frequency preferences
**Preconditions:** A Super Admin account is active; the preference controls are available to parents.
**Steps:**
1. As a parent, set the channel preference to in-app only for non-critical alerts.
2. Trigger a non-critical alert.
3. Observe the result and verify the full behavior: the alert is delivered in-app only.
**Expected Result:** The parent preference is honored — the non-critical alert is delivered on the preferred channel only, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-035 — Quiet hours: parent-level quiet hours honored for non-critical alerts
**Type:** Positive
**Covers:** 2.4 → Quiet hours: parent-level quiet hours honored for non-critical alerts
**Preconditions:** A Super Admin account is active; a parent set quiet hours 22:00–07:00.
**Steps:**
1. As a Super Admin, trigger a non-critical alert at 23:00.
2. Observe the delivery.
3. Observe the result and verify the full behavior: the alert is deferred until quiet hours end.
**Expected Result:** The quiet hours are honored — the non-critical alert is deferred, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-036 — Delivery tracking: per-alert delivery state (sent, delivered, failed)
**Type:** Positive
**Covers:** 2.4 → Delivery tracking: per-alert delivery state (sent, delivered, failed)
**Preconditions:** A Super Admin account is active; parent alerts have been delivered.
**Steps:**
1. As a Super Admin, open the delivery tracking view.
2. Observe the result and verify the full behavior: each alert shows its delivery state (sent, delivered, or failed).
**Expected Result:** The delivery tracking is shown — per-alert delivery states are visible, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-037 — Rule: critical alerts bypass quiet hours and mute preferences
**Type:** Positive
**Covers:** 2.4 → Rule: critical alerts bypass quiet hours and non-critical mute preferences; they are always delivered on enabled channels
**Preconditions:** A Super Admin account is active; a parent is in quiet hours with email muted for non-critical.
**Steps:**
1. As a Super Admin, trigger a critical alert during quiet hours.
2. Check the parent's email.
3. Observe the result and verify the full behavior: the critical alert is delivered immediately despite quiet hours and the mute.
**Expected Result:** The critical alert bypasses quiet hours and mutes — it is delivered immediately, delivered exactly as documented.
**Priority:** Critical

### TC-SA-AR-02-038 — Rule: non-critical alerts respect quiet hours and channel preferences
**Type:** Positive
**Covers:** 2.4 → Rule: non-critical alerts respect the parent's quiet hours and channel preferences
**Preconditions:** A Super Admin account is active; a parent has quiet hours and an in-app-only preference.
**Steps:**
1. As a Super Admin, trigger a non-critical alert during quiet hours.
2. Observe the delivery.
3. Observe the result and verify the full behavior: the alert is deferred and delivered in-app only.
**Expected Result:** The non-critical alert respects quiet hours and preferences — deferred and in-app only, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-039 — Rule: a parent with no reachable channel is flagged for follow-up
**Type:** Negative
**Covers:** 2.4 → Rule: a parent with no reachable channel (all failed) is flagged for follow-up; the alert is not silently lost
**Preconditions:** A Super Admin account is active; a parent's push, email, and in-app deliveries all fail.
**Steps:**
1. As a Super Admin, trigger an alert for the unreachable parent.
2. Open the delivery tracking.
3. Observe the result and verify the full behavior: the parent is flagged for follow-up and the alert is recorded as undelivered.
**Expected Result:** The unreachable parent is flagged — the alert is not silently lost, delivered exactly as documented.
**Priority:** High

### TC-SA-AR-02-040 — Rule: delivery configuration changes are audit-logged
**Type:** Positive
**Covers:** 2.4 → Audit logging of parent alert delivery configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the parent alert delivery configuration and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The delivery configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High
