# 5. Child Safety — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: child_safety.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 |
|---------|--------------------|----------|
| 5.1 Age Verification | Verification: the verification (the verification, the user, the age, the date) | TC-SA-22-05-001 |
| 5.1 Age Verification | User: the user (the user, the name, the verification) | TC-SA-22-05-002 |
| 5.1 Age Verification | Age: the age (the age of the user, the number, the date) | TC-SA-22-05-003 |
| 5.1 Age Verification | Verification method: the method (the method of the verification, e.g., the date of birth, the document) | TC-SA-22-05-004 |
| 5.1 Age Verification | Verification status: the status (the verified, the unverified) | TC-SA-22-05-005 |
| 5.1 Age Verification | Verification count: the count (the count of the verifications) | TC-SA-22-05-006 |
| 5.1 Age Verification | Verification view: the view (the verifications, the users, the ages, the dates) | TC-SA-22-05-007 |
| 5.1 Age Verification | Audit logging of the age verification | TC-SA-22-05-008 |
| 5.1 Age Verification | Rule: the verification is the check (the verification, the user, the age, the date); the verification is the confirmation | TC-SA-22-05-001 |
| 5.1 Age Verification | Rule: the user is the subject (the user, the name, the verification); the user is the person | TC-SA-22-05-002 |
| 5.1 Age Verification | Rule: the age is the value (the age of the user, the number, the date); the age is the number | TC-SA-22-05-003 |
| 5.1 Age Verification | Rule: the verification status is the state (the verified, the unverified); the status is the control | TC-SA-22-05-005 |
| 5.1 Age Verification | Rule: the age is verified (the verifications, the users, the ages, the dates); the check is managed | TC-SA-22-05-007 |
| 5.1 Age Verification | Rule: age verification is audit-logged with the verification, user, and timestamp | TC-SA-22-05-008 |
| 5.2 Parental Consent for Minors | Consent: the consent (the consent, the parent, the minor, the date) | TC-SA-22-05-009 |
| 5.2 Parental Consent for Minors | Parent: the parent (the parent, the name, the consent) | TC-SA-22-05-010 |
| 5.2 Parental Consent for Minors | Minor: the minor (the minor, the age, the date) | TC-SA-22-05-011 |
| 5.2 Parental Consent for Minors | Consent method: the method (the method of the consent, e.g., the email, the document) | TC-SA-22-05-012 |
| 5.2 Parental Consent for Minors | Consent status: the status (the granted, the pending, the denied) | TC-SA-22-05-013 |
| 5.2 Parental Consent for Minors | Consent count: the count (the count of the consents) | TC-SA-22-05-014 |
| 5.2 Parental Consent for Minors | Consent view: the view (the consents, the parents, the minors, the dates) | TC-SA-22-05-015 |
| 5.2 Parental Consent for Minors | Audit logging of the parental consent | TC-SA-22-05-016 |
| 5.2 Parental Consent for Minors | Rule: the consent is the permission (the consent, the parent, the minor, the date); the consent is the agreement | TC-SA-22-05-009 |
| 5.2 Parental Consent for Minors | Rule: the parent is the guardian (the parent, the name, the consent); the parent is the authority | TC-SA-22-05-010 |
| 5.2 Parental Consent for Minors | Rule: the minor is the child (the minor, the age, the date); the minor is the protected user | TC-SA-22-05-011 |
| 5.2 Parental Consent for Minors | Rule: the consent status is the state (the granted, the pending, the denied); the status is the control | TC-SA-22-05-013 |
| 5.2 Parental Consent for Minors | Rule: the consent is obtained (the consents, the parents, the minors, the dates); the permission is managed | TC-SA-22-05-015 |
| 5.2 Parental Consent for Minors | Rule: parental consent is audit-logged with the consent, parent, and timestamp | TC-SA-22-05-016 |
| 5.3 Monitored Communication Channels | Monitoring: the monitoring (the monitoring, the channel, the user, the date) | TC-SA-22-05-017 |
| 5.3 Monitored Communication Channels | Channel: the channel (the channel, the type, the date) | TC-SA-22-05-018 |
| 5.3 Monitored Communication Channels | User: the user (the user, the name, the monitoring) | TC-SA-22-05-019 |
| 5.3 Monitored Communication Channels | Monitoring status: the status (the monitored, the not-monitored) | TC-SA-22-05-020 |
| 5.3 Monitored Communication Channels | Monitoring count: the count (the count of the monitorings) | TC-SA-22-05-021 |
| 5.3 Monitored Communication Channels | Monitoring view: the view (the monitorings, the channels, the users, the dates) | TC-SA-22-05-022 |
| 5.3 Monitored Communication Channels | Monitoring export: the export (the monitorings, the format, the channel) | TC-SA-22-05-023 |
| 5.3 Monitored Communication Channels | Audit logging of the channel monitoring | TC-SA-22-05-024 |
| 5.3 Monitored Communication Channels | Rule: the monitoring is the watch (the monitoring, the channel, the user, the date); the monitoring is the observation | TC-SA-22-05-017 |
| 5.3 Monitored Communication Channels | Rule: the channel is the medium (the channel, the type, the date); the channel is the path | TC-SA-22-05-018 |
| 5.3 Monitored Communication Channels | Rule: the user is the participant (the user, the name, the monitoring); the user is the actor | TC-SA-22-05-019 |
| 5.3 Monitored Communication Channels | Rule: the monitoring status is the state (the monitored, the not-monitored); the status is the control | TC-SA-22-05-020 |
| 5.3 Monitored Communication Channels | Rule: the channels are monitored (the monitorings, the channels, the users, the dates); the watch is managed | TC-SA-22-05-022 |
| 5.3 Monitored Communication Channels | Rule: channel monitoring is audit-logged with the monitoring, channel, and timestamp | TC-SA-22-05-024 |
| 5.4 Content Moderation | Moderation: the moderation (the moderation, the content, the user, the date) | TC-SA-22-05-025 |
| 5.4 Content Moderation | Content: the content (the content, the type, the date) | TC-SA-22-05-026 |
| 5.4 Content Moderation | User: the user (the user, the name, the moderation) | TC-SA-22-05-027 |
| 5.4 Content Moderation | Moderation action: the action (the action of the moderation, e.g., the approve, the remove) | TC-SA-22-05-028 |
| 5.4 Content Moderation | Moderation status: the status (the moderated, the pending) | TC-SA-22-05-029 |
| 5.4 Content Moderation | Moderation count: the count (the count of the moderations) | TC-SA-22-05-030 |
| 5.4 Content Moderation | Moderation view: the view (the moderations, the content, the users, the dates) | TC-SA-22-05-031 |
| 5.4 Content Moderation | Audit logging of the content moderation | TC-SA-22-05-032 |
| 5.4 Content Moderation | Rule: the moderation is the review (the moderation, the content, the user, the date); the moderation is the check | TC-SA-22-05-025 |
| 5.4 Content Moderation | Rule: the content is the subject (the content, the type, the date); the content is the asset | TC-SA-22-05-026 |
| 5.4 Content Moderation | Rule: the user is the author (the user, the name, the moderation); the user is the creator | TC-SA-22-05-027 |
| 5.4 Content Moderation | Rule: the moderation status is the state (the moderated, the pending); the status is the control | TC-SA-22-05-029 |
| 5.4 Content Moderation | Rule: the content is moderated (the moderations, the content, the users, the dates); the review is managed | TC-SA-22-05-031 |
| 5.4 Content Moderation | Rule: content moderation is audit-logged with the moderation, content, and timestamp | TC-SA-22-05-032 |
| 5.5 Reporting System for Inappropriate Content | Report: the report (the report, the content, the user, the date) | TC-SA-22-05-033 |
| 5.5 Reporting System for Inappropriate Content | Content: the content (the content, the type, the date) | TC-SA-22-05-034 |
| 5.5 Reporting System for Inappropriate Content | User: the user (the user, the name, the report) | TC-SA-22-05-035 |
| 5.5 Reporting System for Inappropriate Content | Report reason: the reason (the reason of the report, e.g., the inappropriate, the offensive) | TC-SA-22-05-036 |
| 5.5 Reporting System for Inappropriate Content | Report status: the status (the reported, the reviewed, the resolved) | TC-SA-22-05-037 |
| 5.5 Reporting System for Inappropriate Content | Report count: the count (the count of the reports) | TC-SA-22-05-038 |
| 5.5 Reporting System for Inappropriate Content | Report view: the view (the reports, the content, the users, the dates) | TC-SA-22-05-039 |
| 5.5 Reporting System for Inappropriate Content | Audit logging of the content reporting | TC-SA-22-05-040 |
| 5.5 Reporting System for Inappropriate Content | Rule: the report is the flag (the report, the content, the user, the date); the report is the signal | TC-SA-22-05-033 |
| 5.5 Reporting System for Inappropriate Content | Rule: the content is the subject (the content, the type, the date); the content is the asset | TC-SA-22-05-034 |
| 5.5 Reporting System for Inappropriate Content | Rule: the user is the reporter (the user, the name, the report); the user is the actor | TC-SA-22-05-035 |
| 5.5 Reporting System for Inappropriate Content | Rule: the report status is the state (the reported, the reviewed, the resolved); the status is the control | TC-SA-22-05-037 |
| 5.5 Reporting System for Inappropriate Content | Rule: the content is reported (the reports, the content, the users, the dates); the flag is managed | TC-SA-22-05-039 |
| 5.5 Reporting System for Inappropriate Content | Rule: content reporting is audit-logged with the report, content, and timestamp | TC-SA-22-05-040 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Check: the check (the check, the teacher, the credential, the date) | TC-SA-22-05-041 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Teacher: the teacher (the teacher, the name, the check) | TC-SA-22-05-042 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Credential: the credential (the credential of the teacher, the type, the date) | TC-SA-22-05-043 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Creator: the creator (the creator, the name, the check) | TC-SA-22-05-044 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Audit: the audit (the audit, the scope, the date) | TC-SA-22-05-045 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Check status: the status (the verified, the unverified) | TC-SA-22-05-046 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Check view: the view (the checks, the teachers, the creators, the audits, the dates) | TC-SA-22-05-047 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Audit logging of the background checks | TC-SA-22-05-048 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: the check is the verification (the check, the teacher, the credential, the date); the check is the confirmation | TC-SA-22-05-041 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: the teacher is the educator (the teacher, the name, the check); the teacher is the instructor | TC-SA-22-05-042 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: the credential is the proof (the credential of the teacher, the type, the date); the credential is the evidence | TC-SA-22-05-043 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: the audit is the review (the audit, the scope, the date); the audit is the inspection | TC-SA-22-05-045 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: the people are verified (the checks, the teachers, the creators, the audits, the dates); the verification is managed | TC-SA-22-05-047 |
| 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits) | Rule: background checks are audit-logged with the check, teacher, and timestamp | TC-SA-22-05-048 |

## 5.1 Age Verification

### TC-SA-22-05-001 — Verification: the verification (the verification, the user, the age, the date); the verification is the confirmation
**Type:** Positive
**Covers:** 5.1 → Verification: the verification (the verification, the user, the age, the date); Rule: the verification is the check (the verification, the user, the age, the date); the verification is the confirmation
**Preconditions:** Super Admin is logged in; users with age data exist.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Age Verification.
2. Run the verification: the verification (the verification, the user, the age, the date) — verify the verification is the check.
3. Verify the verification shows the user, the age, and the date.
4. Verify the verification correctly classifies the user as minor or adult per the documented age threshold.
**Expected Result:** The verification is run — the verification, the user, the age, and the date are the confirmation.
**Priority:** Critical

### TC-SA-22-05-002 — User: the user (the user, the name, the verification); the user is the person
**Type:** Positive
**Covers:** 5.1 → User: the user (the user, the name, the verification); Rule: the user is the subject (the user, the name, the verification); the user is the person
**Preconditions:** Multiple users have age verifications.
**Steps:**
1. Select the user: the user (the user, the name, the verification) — verify the user is the subject.
2. Verify the user shows the name and the verification.
3. Verify each verification is tied to exactly one user account.
**Expected Result:** The user is selected — the user, the name, and the verification are the person.
**Priority:** High

### TC-SA-22-05-003 — Age: the age (the age of the user, the number, the date); the age is the number
**Type:** Positive
**Covers:** 5.1 → Age: the age (the age of the user, the number, the date); Rule: the age is the value (the age of the user, the number, the date); the age is the number
**Preconditions:** Users with various ages exist.
**Steps:**
1. View the age: the age (the age of the user, the number, the date) — verify the age is the value.
2. Verify the age shows the number and the date.
3. Verify the age is stored and displayed consistently (no rounding or drift).
**Expected Result:** The age is shown — the age of the user, the number, and the date are the value.
**Priority:** High

### TC-SA-22-05-004 — Verification method: the method (the method of the verification, e.g., the date of birth, the document); the method is the approach
**Type:** Edge
**Covers:** 5.1 → Verification method: the method (the method of the verification, e.g., the date of birth, the document); Rule: the verification method is the mode (the method of the verification, e.g., the date of birth, the document); the method is the approach
**Preconditions:** Date-of-birth and document verification methods are available; a user submitting an invalid/forged document (invalid-document edge) is also prepared.
**Steps:**
1. Set the verification method: the method (the method of the verification, e.g., the date of birth, the document) — verify the method is the mode.
2. Verify the date-of-birth method classifies the user correctly.
3. Verify the document method validates the document before accepting it.
4. Submit the invalid document — verify the verification fails (unverified status with a reason); the forged document is never accepted.
**Expected Result:** The verification method is set — the method of the verification (the date of birth, the document) is the approach; invalid documents are rejected, never accepted.
**Priority:** High

### TC-SA-22-05-005 — Verification status: the status (the verified, the unverified); the status is the control
**Type:** Edge
**Covers:** 5.1 → Verification status: the status (the verified, the unverified); Rule: the verification status is the state (the verified, the unverified); the status is the control
**Preconditions:** Verified and unverified users exist; a minor user who is unverified (unverified-minor edge) is also prepared.
**Steps:**
1. View the verification status: the status (the verified, the unverified) — verify the verification status is the state.
2. Verify a completed verification shows verified.
3. Check the unverified minor — verify the minor's access to age-restricted features is blocked until verified (an unverified minor is never granted adult access).
**Expected Result:** The verification status is shown — the verified and the unverified are the control; unverified minors never gain age-restricted access.
**Priority:** High

### TC-SA-22-05-006 — Verification count: the count (the count of the verifications); the count is the measure
**Type:** Positive
**Covers:** 5.1 → Verification count: the count (the count of the verifications)
**Preconditions:** Multiple verifications exist.
**Steps:**
1. View the verification count: the count (the count of the verifications) — verify the count is the measure.
2. Verify the count matches the actual number of verifications.
3. Complete a new verification — verify the count increments.
**Expected Result:** The verification count is shown — the count of the verifications is the measure.
**Priority:** High

### TC-SA-22-05-007 — Verification view: the view (the verifications, the users, the ages, the dates); the check is managed
**Type:** Positive
**Covers:** 5.1 → Verification view: the view (the verifications, the users, the ages, the dates); Rule: the age is verified (the verifications, the users, the ages, the dates); the check is managed
**Preconditions:** Multiple verifications exist.
**Steps:**
1. View the verifications: the view (the verifications, the users, the ages, the dates) — verify the age is verified.
2. Verify each verification shows the user, the age, and the date.
3. Verify the check is managed (view, verify, re-verify).
**Expected Result:** The verifications are viewed — the verifications, the users, the ages, and the dates are visible; the check is managed.
**Priority:** High

### TC-SA-22-05-008 — Age verification is audit-logged with the verification, user, and timestamp
**Type:** Positive
**Covers:** 5.1 → Audit logging of the age verification; Rule: age verification is audit-logged with the verification, user, and timestamp
**Preconditions:** Super Admin has run an age verification.
**Steps:**
1. Open the audit trail and filter by "age verification".
2. Verify entries show the verification, the user, and the timestamp.
**Expected Result:** The age verification is audit-logged with the verification, user, and timestamp.
**Priority:** Critical

## 5.2 Parental Consent for Minors

### TC-SA-22-05-009 — Consent: the consent (the consent, the parent, the minor, the date); the consent is the agreement
**Type:** Positive
**Covers:** 5.2 → Consent: the consent (the consent, the parent, the minor, the date); Rule: the consent is the permission (the consent, the parent, the minor, the date); the consent is the agreement
**Preconditions:** Super Admin is logged in; a parent has given consent for a minor.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Parental Consent for Minors.
2. Record the consent: the consent (the consent, the parent, the minor, the date) — verify the consent is the permission.
3. Verify the consent shows the parent, the minor, and the date.
4. Verify the minor's account is activated only after the consent is granted.
**Expected Result:** The consent is recorded — the consent, the parent, the minor, and the date are the agreement.
**Priority:** Critical

### TC-SA-22-05-010 — Parent: the parent (the parent, the name, the consent); the parent is the authority
**Type:** Positive
**Covers:** 5.2 → Parent: the parent (the parent, the name, the consent); Rule: the parent is the guardian (the parent, the name, the consent); the parent is the authority
**Preconditions:** Multiple parents have given consents.
**Steps:**
1. Select the parent: the parent (the parent, the name, the consent) — verify the parent is the guardian.
2. Verify the parent shows the name and the consent.
3. Verify the parent's identity/guardian relationship is validated before the consent is accepted.
**Expected Result:** The parent is selected — the parent, the name, and the consent are the authority; only validated guardians can consent.
**Priority:** High

### TC-SA-22-05-011 — Minor: the minor (the minor, the age, the date); the minor is the protected user
**Type:** Positive
**Covers:** 5.2 → Minor: the minor (the minor, the age, the date); Rule: the minor is the child (the minor, the age, the date); the minor is the protected user
**Preconditions:** Multiple minors have parental consents.
**Steps:**
1. Select the minor: the minor (the minor, the age, the date) — verify the minor is the child.
2. Verify the minor shows the age and the date.
3. Verify the minor is confirmed to be under the documented age threshold (an adult is never processed through the minor consent flow).
**Expected Result:** The minor is selected — the minor, the age, and the date are the protected user.
**Priority:** High

### TC-SA-22-05-012 — Consent method: the method (the method of the consent, e.g., the email, the document); the method is the approach
**Type:** Positive
**Covers:** 5.2 → Consent method: the method (the method of the consent, e.g., the email, the document)
**Preconditions:** Email and document consent methods are available.
**Steps:**
1. Set the consent method: the method (the method of the consent, e.g., the email, the document) — verify the method is the mode.
2. Verify the email method delivers the consent request to the parent's verified email and records the reply.
3. Verify the document method records the signed document.
**Expected Result:** The consent method is set — the method of the consent (the email, the document) is the approach.
**Priority:** High

### TC-SA-22-05-013 — Consent status: the status (the granted, the pending, the denied); the status is the control
**Type:** Edge
**Covers:** 5.2 → Consent status: the status (the granted, the pending, the denied); Rule: the consent status is the state (the granted, the pending, the denied); the status is the control
**Preconditions:** Consents with granted, pending, and denied statuses exist; a minor whose consent is still pending (pending-minor edge) is also prepared.
**Steps:**
1. View the consent status: the status (the granted, the pending, the denied) — verify the consent status is the state.
2. Verify a parent's yes moves the consent to granted.
3. Check the pending minor — verify the minor's access to restricted features remains blocked while pending (pending is never treated as granted); a parent's no moves it to denied and the minor's access is revoked.
**Expected Result:** The consent status is shown — the granted, the pending, and the denied are the control; pending consent never grants access, and denial revokes it.
**Priority:** High

### TC-SA-22-05-014 — Consent count: the count (the count of the consents); the count is the measure
**Type:** Positive
**Covers:** 5.2 → Consent count: the count (the count of the consents)
**Preconditions:** Multiple parental consents exist.
**Steps:**
1. View the consent count: the count (the count of the consents) — verify the count is the measure.
2. Verify the count matches the actual number of consents.
3. Record a new consent — verify the count increments.
**Expected Result:** The consent count is shown — the count of the consents is the measure.
**Priority:** High

### TC-SA-22-05-015 — Consent view: the view (the consents, the parents, the minors, the dates); the permission is managed
**Type:** Positive
**Covers:** 5.2 → Consent view: the view (the consents, the parents, the minors, the dates); Rule: the consent is obtained (the consents, the parents, the minors, the dates); the permission is managed
**Preconditions:** Multiple parental consents exist.
**Steps:**
1. View the consents: the view (the consents, the parents, the minors, the dates) — verify the consent is obtained.
2. Verify each consent shows the parent, the minor, and the date.
3. Verify the permission is managed (view, request, track, revoke).
**Expected Result:** The consents are viewed — the consents, the parents, the minors, and the dates are visible; the permission is managed.
**Priority:** High

### TC-SA-22-05-016 — Parental consent is audit-logged with the consent, parent, and timestamp
**Type:** Positive
**Covers:** 5.2 → Audit logging of the parental consent; Rule: parental consent is audit-logged with the consent, parent, and timestamp
**Preconditions:** Super Admin has recorded a parental consent.
**Steps:**
1. Open the audit trail and filter by "parental consent".
2. Verify entries show the consent, the parent, and the timestamp.
**Expected Result:** The parental consent is audit-logged with the consent, parent, and timestamp.
**Priority:** Critical

## 5.3 Monitored Communication Channels

### TC-SA-22-05-017 — Monitoring: the monitoring (the monitoring, the channel, the user, the date); the monitoring is the observation
**Type:** Positive
**Covers:** 5.3 → Monitoring: the monitoring (the monitoring, the channel, the user, the date); Rule: the monitoring is the watch (the monitoring, the channel, the user, the date); the monitoring is the observation
**Preconditions:** Super Admin is logged in; communication channels with minor participants exist.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Monitored Communication Channels.
2. Enable the monitoring: the monitoring (the monitoring, the channel, the user, the date) — verify the monitoring is the watch.
3. Verify the monitoring shows the channel, the user, and the date.
4. Send a message on the channel — verify it passes through the monitoring pipeline.
**Expected Result:** The monitoring is enabled — the monitoring, the channel, the user, and the date are the observation.
**Priority:** Critical

### TC-SA-22-05-018 — Channel: the channel (the channel, the type, the date); the channel is the path
**Type:** Positive
**Covers:** 5.3 → Channel: the channel (the channel, the type, the date); Rule: the channel is the medium (the channel, the type, the date); the channel is the path
**Preconditions:** Multiple communication channels exist.
**Steps:**
1. Select the channel: the channel (the channel, the type, the date) — verify the channel is the medium.
2. Verify the channel shows the type and the date.
3. Verify monitoring can be enabled per channel.
**Expected Result:** The channel is selected — the channel, the type, and the date are the path.
**Priority:** High

### TC-SA-22-05-019 — User: the user (the user, the name, the monitoring); the user is the actor
**Type:** Positive
**Covers:** 5.3 → User: the user (the user, the name, the monitoring); Rule: the user is the participant (the user, the name, the monitoring); the user is the actor
**Preconditions:** Multiple users participate in monitored channels.
**Steps:**
1. Select the user: the user (the user, the name, the monitoring) — verify the user is the participant.
2. Verify the user shows the name and the monitoring.
3. Verify each monitored message is attributed to the correct user.
**Expected Result:** The user is selected — the user, the name, and the monitoring are the actor.
**Priority:** High

### TC-SA-22-05-020 — Monitoring status: the status (the monitored, the not-monitored); the status is the control
**Type:** Edge
**Covers:** 5.3 → Monitoring status: the status (the monitored, the not-monitored); Rule: the monitoring status is the state (the monitored, the not-monitored); the status is the control
**Preconditions:** Monitored and not-monitored channels exist; a new channel where a minor joins but monitoring was not enabled (unmonitored-minor edge) is also prepared.
**Steps:**
1. View the monitoring status: the status (the monitored, the not-monitored) — verify the monitoring status is the state.
2. Verify an enabled channel shows monitored.
3. Check the channel where a minor joined unmonitored — verify the system automatically enables monitoring (or blocks the minor's participation) the moment a minor joins; a channel with a minor is never left not-monitored.
**Expected Result:** The monitoring status is shown — the monitored and the not-monitored are the control; any channel with a minor participant is always monitored.
**Priority:** High

### TC-SA-22-05-021 — Monitoring count: the count (the count of the monitorings); the count is the measure
**Type:** Positive
**Covers:** 5.3 → Monitoring count: the count (the count of the monitorings)
**Preconditions:** Multiple monitorings exist.
**Steps:**
1. View the monitoring count: the count (the count of the monitorings) — verify the count is the measure.
2. Verify the count matches the actual number of monitorings.
3. Enable a new monitoring — verify the count increments.
**Expected Result:** The monitoring count is shown — the count of the monitorings is the measure.
**Priority:** High

### TC-SA-22-05-022 — Monitoring view: the view (the monitorings, the channels, the users, the dates); the watch is managed
**Type:** Positive
**Covers:** 5.3 → Monitoring view: the view (the monitorings, the channels, the users, the dates); Rule: the channels are monitored (the monitorings, the channels, the users, the dates); the watch is managed
**Preconditions:** Multiple monitorings exist.
**Steps:**
1. View the monitorings: the view (the monitorings, the channels, the users, the dates) — verify the channels are monitored.
2. Verify each monitoring shows the channel, the user, and the date.
3. Verify the watch is managed (view, review, act).
**Expected Result:** The monitorings are viewed — the monitorings, the channels, the users, and the dates are visible; the watch is managed.
**Priority:** High

### TC-SA-22-05-023 — Monitoring export: the export (the monitorings, the format, the channel); the export is the record
**Type:** Edge
**Covers:** 5.3 → Monitoring export: the export (the monitorings, the format, the channel)
**Preconditions:** Monitorings exist for multiple channels; a channel with no monitorings (zero-row export edge) is also prepared.
**Steps:**
1. Export the monitorings: the export (the monitorings, the format, the channel) — verify the export is the record.
2. Verify the export contains all monitorings for the selected channel in the selected format.
3. Export the channel with no monitorings — verify the export completes (empty file or clear "no data" message, no error/corrupt file).
**Expected Result:** The monitorings are exported — the monitorings, the format, and the channel are the record; empty-channel exports never produce corrupt files or errors.
**Priority:** High

### TC-SA-22-05-024 — Channel monitoring is audit-logged with the monitoring, channel, and timestamp
**Type:** Positive
**Covers:** 5.3 → Audit logging of the channel monitoring; Rule: channel monitoring is audit-logged with the monitoring, channel, and timestamp
**Preconditions:** Super Admin has enabled channel monitoring.
**Steps:**
1. Open the audit trail and filter by "channel monitoring".
2. Verify entries show the monitoring, the channel, and the timestamp.
**Expected Result:** The channel monitoring is audit-logged with the monitoring, channel, and timestamp.
**Priority:** Critical

## 5.4 Content Moderation

### TC-SA-22-05-025 — Moderation: the moderation (the moderation, the content, the user, the date); the moderation is the check
**Type:** Positive
**Covers:** 5.4 → Moderation: the moderation (the moderation, the content, the user, the date); Rule: the moderation is the review (the moderation, the content, the user, the date); the moderation is the check
**Preconditions:** Super Admin is logged in; user-generated content exists.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Content Moderation.
2. Run the moderation: the moderation (the moderation, the content, the user, the date) — verify the moderation is the review.
3. Verify the moderation shows the content, the user, and the date.
4. Verify the moderation applies the documented review before the content is visible to minors.
**Expected Result:** The moderation is run — the moderation, the content, the user, and the date are the check.
**Priority:** Critical

### TC-SA-22-05-026 — Content: the content (the content, the type, the date); the content is the asset
**Type:** Positive
**Covers:** 5.4 → Content: the content (the content, the type, the date); Rule: the content is the subject (the content, the type, the date); the content is the asset
**Preconditions:** Multiple content items are pending moderation.
**Steps:**
1. Select the content: the content (the content, the type, the date) — verify the content is the subject.
2. Verify the content shows the type and the date.
3. Verify each content type has a moderation path.
**Expected Result:** The content is selected — the content, the type, and the date are the asset.
**Priority:** High

### TC-SA-22-05-027 — User: the user (the user, the name, the moderation); the user is the creator
**Type:** Positive
**Covers:** 5.4 → User: the user (the user, the name, the moderation); Rule: the user is the author (the user, the name, the moderation); the user is the creator
**Preconditions:** Multiple users have content pending moderation.
**Steps:**
1. Select the user: the user (the user, the name, the moderation) — verify the user is the author.
2. Verify the user shows the name and the moderation.
3. Verify each moderated content item is attributed to the correct author.
**Expected Result:** The user is selected — the user, the name, and the moderation are the creator.
**Priority:** High

### TC-SA-22-05-028 — Moderation action: the action (the action of the moderation, e.g., the approve, the remove); the action is the decision
**Type:** Edge
**Covers:** 5.4 → Moderation action: the action (the action of the moderation, e.g., the approve, the remove); Rule: the moderation action is the decision (the action of the moderation, e.g., the approve, the remove); the action is the outcome
**Preconditions:** Content pending moderation exists; a piece of content that is borderline (action-choice edge) is also prepared.
**Steps:**
1. Apply the moderation action: the action (the action of the moderation, e.g., the approve, the remove) — verify the action is the decision.
2. Approve safe content — verify it becomes visible per the documented audience rules.
3. Remove inappropriate content — verify it is immediately hidden from all users (including minors) and the author is notified per the documented rule.
4. Check the borderline content — verify the documented escalation path applies (no silent auto-approve of borderline content).
**Expected Result:** The moderation action is applied — the action of the moderation (the approve, the remove) is the decision; removed content is instantly hidden, and borderline content follows the documented escalation.
**Priority:** High

### TC-SA-22-05-029 — Moderation status: the status (the moderated, the pending); the status is the control
**Type:** Edge
**Covers:** 5.4 → Moderation status: the status (the moderated, the pending); Rule: the moderation status is the state (the moderated, the pending); the status is the control
**Preconditions:** Moderated and pending content exists; newly submitted content that is still pending (pending-visibility edge) is also prepared.
**Steps:**
1. View the moderation status: the status (the moderated, the pending) — verify the moderation status is the state.
2. Verify reviewed content shows moderated.
3. Check the pending content — verify it is NOT visible to minors (or any user, per the documented rule) while pending; pending content is never shown as if approved.
**Expected Result:** The moderation status is shown — the moderated and the pending are the control; pending content is never visible as approved.
**Priority:** High

### TC-SA-22-05-030 — Moderation count: the count (the count of the moderations); the count is the measure
**Type:** Positive
**Covers:** 5.4 → Moderation count: the count (the count of the moderations)
**Preconditions:** Multiple moderations exist.
**Steps:**
1. View the moderation count: the count (the count of the moderations) — verify the count is the measure.
2. Verify the count matches the actual number of moderations.
3. Complete a new moderation — verify the count increments.
**Expected Result:** The moderation count is shown — the count of the moderations is the measure.
**Priority:** High

### TC-SA-22-05-031 — Moderation view: the view (the moderations, the content, the users, the dates); the review is managed
**Type:** Positive
**Covers:** 5.4 → Moderation view: the view (the moderations, the content, the users, the dates); Rule: the content is moderated (the moderations, the content, the users, the dates); the review is managed
**Preconditions:** Multiple moderations exist.
**Steps:**
1. View the moderations: the view (the moderations, the content, the users, the dates) — verify the content is moderated.
2. Verify each moderation shows the content, the user, and the date.
3. Verify the review is managed (view, queue, act, close).
**Expected Result:** The moderations are viewed — the moderations, the content, the users, and the dates are visible; the review is managed.
**Priority:** High

### TC-SA-22-05-032 — Content moderation is audit-logged with the moderation, content, and timestamp
**Type:** Positive
**Covers:** 5.4 → Audit logging of the content moderation; Rule: content moderation is audit-logged with the moderation, content, and timestamp
**Preconditions:** Super Admin has performed a content moderation.
**Steps:**
1. Open the audit trail and filter by "content moderation".
2. Verify entries show the moderation, the content, and the timestamp.
**Expected Result:** The content moderation is audit-logged with the moderation, content, and timestamp.
**Priority:** Critical

## 5.5 Reporting System for Inappropriate Content

### TC-SA-22-05-033 — Report: the report (the report, the content, the user, the date); the report is the signal
**Type:** Positive
**Covers:** 5.5 → Report: the report (the report, the content, the user, the date); Rule: the report is the flag (the report, the content, the user, the date); the report is the signal
**Preconditions:** Super Admin is logged in; a user has reported inappropriate content.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Reporting System for Inappropriate Content.
2. Review the report: the report (the report, the content, the user, the date) — verify the report is the flag.
3. Verify the report shows the content, the user, and the date.
4. Verify the report triggers the documented review workflow.
**Expected Result:** The report is recorded — the report, the content, the user, and the date are the signal.
**Priority:** Critical

### TC-SA-22-05-034 — Content: the content (the content, the type, the date); the content is the asset
**Type:** Positive
**Covers:** 5.5 → Content: the content (the content, the type, the date); Rule: the content is the subject (the content, the type, the date); the content is the asset
**Preconditions:** Multiple pieces of content have been reported.
**Steps:**
1. Select the content: the content (the content, the type, the date) — verify the content is the subject.
2. Verify the content shows the type and the date.
3. Verify each report is linked to the exact reported content item.
**Expected Result:** The content is selected — the content, the type, and the date are the asset.
**Priority:** High

### TC-SA-22-05-035 — User: the user (the user, the name, the report); the user is the actor
**Type:** Positive
**Covers:** 5.5 → User: the user (the user, the name, the report); Rule: the user is the reporter (the user, the name, the report); the user is the actor
**Preconditions:** Multiple users have filed reports.
**Steps:**
1. Select the user: the user (the user, the name, the report) — verify the user is the reporter.
2. Verify the user shows the name and the report.
3. Verify each report is attributed to the correct reporter.
**Expected Result:** The user is selected — the user, the name, and the report are the actor.
**Priority:** High

### TC-SA-22-05-036 — Report reason: the reason (the reason of the report, e.g., the inappropriate, the offensive); the reason is the cause
**Type:** Positive
**Covers:** 5.5 → Report reason: the reason (the reason of the report, e.g., the inappropriate, the offensive)
**Preconditions:** Reports with various reasons exist.
**Steps:**
1. View the report reason: the reason (the reason of the report, e.g., the inappropriate, the offensive) — verify the reason is the cause.
2. Verify each report shows its reason.
3. Verify reports can be filtered by reason.
**Expected Result:** The report reason is shown — the reason of the report (the inappropriate, the offensive) is the cause.
**Priority:** High

### TC-SA-22-05-037 — Report status: the status (the reported, the reviewed, the resolved); the status is the control
**Type:** Edge
**Covers:** 5.5 → Report status: the status (the reported, the reviewed, the resolved); Rule: the report status is the state (the reported, the reviewed, the resolved); the status is the control
**Preconditions:** Reports with reported, reviewed, and resolved statuses exist; a report on content involving a minor that sits unreviewed past the documented SLA (SLA-breach edge) is also prepared.
**Steps:**
1. View the report status: the status (the reported, the reviewed, the resolved) — verify the report status is the state.
2. Verify a new report shows reported, moves to reviewed when examined, and to resolved when closed.
3. Check the SLA-breaching report — verify the documented escalation fires (alert to Super Admin / priority queue); a minor-safety report is never silently left unreviewed.
**Expected Result:** The report status is shown — the reported, the reviewed, and the resolved are the control; SLA breaches on minor-safety reports always escalate.
**Priority:** High

### TC-SA-22-05-038 — Report count: the count (the count of the reports); the count is the measure
**Type:** Positive
**Covers:** 5.5 → Report count: the count (the count of the reports)
**Preconditions:** Multiple reports exist.
**Steps:**
1. View the report count: the count (the count of the reports) — verify the count is the measure.
2. Verify the count matches the actual number of reports.
3. File a new report — verify the count increments.
**Expected Result:** The report count is shown — the count of the reports is the measure.
**Priority:** High

### TC-SA-22-05-039 — Report view: the view (the reports, the content, the users, the dates); the flag is managed
**Type:** Positive
**Covers:** 5.5 → Report view: the view (the reports, the content, the users, the dates); Rule: the content is reported (the reports, the content, the users, the dates); the flag is managed
**Preconditions:** Multiple reports exist.
**Steps:**
1. View the reports: the view (the reports, the content, the users, the dates) — verify the content is reported.
2. Verify each report shows the content, the user, and the date.
3. Verify the flag is managed (view, review, resolve, close).
**Expected Result:** The reports are viewed — the reports, the content, the users, and the dates are visible; the flag is managed.
**Priority:** High

### TC-SA-22-05-040 — Content reporting is audit-logged with the report, content, and timestamp
**Type:** Positive
**Covers:** 5.5 → Audit logging of the content reporting; Rule: content reporting is audit-logged with the report, content, and timestamp
**Preconditions:** A content report has been filed.
**Steps:**
1. Open the audit trail and filter by "content reporting".
2. Verify entries show the report, the content, and the timestamp.
**Expected Result:** The content reporting is audit-logged with the report, content, and timestamp.
**Priority:** Critical

## 5.6 Background Checks (Teacher Credentials, Content Creators, Regular Audits)

### TC-SA-22-05-041 — Check: the check (the check, the teacher, the credential, the date); the check is the confirmation
**Type:** Positive
**Covers:** 5.6 → Check: the check (the check, the teacher, the credential, the date); Rule: the check is the verification (the check, the teacher, the credential, the date); the check is the confirmation
**Preconditions:** Super Admin is logged in; teachers with credentials exist.
**Steps:**
1. Open Data Protection & Compliance → Child Safety → Background Checks.
2. Run the check: the check (the check, the teacher, the credential, the date) — verify the check is the verification.
3. Verify the check shows the teacher, the credential, and the date.
4. Verify the check validates the teacher's credentials before the teacher is approved to work with minors.
**Expected Result:** The check is run — the check, the teacher, the credential, and the date are the confirmation.
**Priority:** Critical

### TC-SA-22-05-042 — Teacher: the teacher (the teacher, the name, the check); the teacher is the instructor
**Type:** Positive
**Covers:** 5.6 → Teacher: the teacher (the teacher, the name, the check); Rule: the teacher is the educator (the teacher, the name, the check); the teacher is the instructor
**Preconditions:** Multiple teachers have background checks.
**Steps:**
1. Select the teacher: the teacher (the teacher, the name, the check) — verify the teacher is the educator.
2. Verify the teacher shows the name and the check.
3. Verify each check is tied to exactly one teacher.
**Expected Result:** The teacher is selected — the teacher, the name, and the check are the instructor.
**Priority:** High

### TC-SA-22-05-043 — Credential: the credential (the credential of the teacher, the type, the date); the credential is the evidence
**Type:** Edge
**Covers:** 5.6 → Credential: the credential (the credential of the teacher, the type, the date); Rule: the credential is the proof (the credential of the teacher, the type, the date); the credential is the evidence
**Preconditions:** Teachers with valid and expired credentials exist; a teacher whose credential has just expired (expired-credential edge) is also prepared.
**Steps:**
1. View the credential: the credential (the credential of the teacher, the type, the date) — verify the credential is the proof.
2. Verify the credential shows the type and the date.
3. Check the expired-credential teacher — verify the check fails (unverified status) and the teacher's access to minor-facing roles is blocked; an expired credential is never treated as valid.
**Expected Result:** The credential is shown — the credential of the teacher, the type, and the date are the evidence; expired credentials always fail the check.
**Priority:** High

### TC-SA-22-05-044 — Creator: the creator (the creator, the name, the check); the creator is the maker
**Type:** Positive
**Covers:** 5.6 → Creator: the creator (the creator, the name, the check)
**Preconditions:** Multiple content creators have background checks.
**Steps:**
1. Select the creator: the creator (the creator, the name, the check) — verify the creator is screened.
2. Verify the creator shows the name and the check.
3. Verify each creator's check is recorded before their content is published to minors.
**Expected Result:** The creator is selected — the creator, the name, and the check are the maker; only screened creators publish to minors.
**Priority:** High

### TC-SA-22-05-045 — Audit: the audit (the audit, the scope, the date); the audit is the inspection
**Type:** Positive
**Covers:** 5.6 → Audit: the audit (the audit, the scope, the date); Rule: the audit is the review (the audit, the scope, the date); the audit is the inspection
**Preconditions:** Regular background-check audits are scheduled.
**Steps:**
1. View the audit: the audit (the audit, the scope, the date) — verify the audit is the review.
2. Verify the audit shows the scope and the date.
3. Verify the audit re-checks a sample of teachers/creators per the documented regular-audit cadence.
**Expected Result:** The audit is shown — the audit, the scope, and the date are the inspection.
**Priority:** High

### TC-SA-22-05-046 — Check status: the status (the verified, the unverified); the status is the control
**Type:** Edge
**Covers:** 5.6 → Check status: the status (the verified, the unverified); Rule: the check status is the state (the verified, the unverified); the status is the control
**Preconditions:** Verified and unverified teachers exist; a new teacher who is unverified (unverified-teacher edge) is also prepared.
**Steps:**
1. View the check status: the status (the verified, the unverified) — verify the check status is the state.
2. Verify a passed check shows verified.
3. Check the unverified teacher — verify the teacher cannot teach minors (or access minor-facing features) until verified; an unverified teacher is never granted minor-facing access.
**Expected Result:** The check status is shown — the verified and the unverified are the control; unverified teachers never gain minor-facing access.
**Priority:** High

### TC-SA-22-05-047 — Check view: the view (the checks, the teachers, the creators, the audits, the dates); the verification is managed
**Type:** Positive
**Covers:** 5.6 → Check view: the view (the checks, the teachers, the creators, the audits, the dates); Rule: the people are verified (the checks, the teachers, the creators, the audits, the dates); the verification is managed
**Preconditions:** Multiple background checks exist.
**Steps:**
1. View the checks: the view (the checks, the teachers, the creators, the audits, the dates) — verify the people are verified.
2. Verify each check shows the teacher, the creator, the audit, and the date.
3. Verify the verification is managed (view, check, audit, re-check).
**Expected Result:** The checks are viewed — the checks, the teachers, the creators, the audits, and the dates are visible; the verification is managed.
**Priority:** High

### TC-SA-22-05-048 — Background checks are audit-logged with the check, teacher, and timestamp
**Type:** Positive
**Covers:** 5.6 → Audit logging of the background checks; Rule: background checks are audit-logged with the check, teacher, and timestamp
**Preconditions:** Super Admin has run a background check.
**Steps:**
1. Open the audit trail and filter by "background check".
2. Verify entries show the check, the teacher, and the timestamp.
**Expected Result:** The background checks are audit-logged with the check, teacher, and timestamp.
**Priority:** Critical
