# 2. Parent Registration & Onboarding — Test Cases

User Type: **Parent**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: parent_registration_onboarding.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 |
|---------|--------------------|----------|
| 2.1 Parent Registration | Register with name, email, phone, and password | TC-PT-1-02-001 |
| 2.1 Parent Registration | Email format validation | TC-PT-1-02-002 |
| 2.1 Parent Registration | Phone format validation | TC-PT-1-02-003 |
| 2.1 Parent Registration | Password strength requirements | TC-PT-1-02-004 |
| 2.1 Parent Registration | Terms and conditions acceptance | TC-PT-1-02-005 |
| 2.1 Parent Registration | Duplicate email check | TC-PT-1-02-006 |
| 2.1 Parent Registration | Registration event logging (submitted, created) | TC-PT-1-02-007 |
| 2.1 Parent Registration | Audit logging of the parent registration | TC-PT-1-02-008 |
| 2.1 Parent Registration | Rule: The email must be unique and in a valid format. | TC-PT-1-02-001 |
| 2.1 Parent Registration | Rule: The phone must be in a valid format. | TC-PT-1-02-002 |
| 2.1 Parent Registration | Rule: The password must meet the strength requirements. | TC-PT-1-02-003 |
| 2.1 Parent Registration | Rule: The terms and conditions must be accepted. | TC-PT-1-02-004 |
| 2.1 Parent Registration | Rule: Registration events (submitted, created) are logged with the account and the timestamp. | TC-PT-1-02-005 |
| 2.1 Parent Registration | Rule: The parent registration is audit-logged with the account and the timestamp. | TC-PT-1-02-006 |
| 2.2 Email Verification | Verification link sent to the email | TC-PT-1-02-009 |
| 2.2 Email Verification | Click the link to verify | TC-PT-1-02-010 |
| 2.2 Email Verification | Verification expiry | TC-PT-1-02-011 |
| 2.2 Email Verification | Resend the verification email | TC-PT-1-02-012 |
| 2.2 Email Verification | Account limited until verified | TC-PT-1-02-013 |
| 2.2 Email Verification | Verification status shown | TC-PT-1-02-014 |
| 2.2 Email Verification | Verification event logging (sent, verified, expired) | TC-PT-1-02-015 |
| 2.2 Email Verification | Audit logging of the email verification | TC-PT-1-02-016 |
| 2.2 Email Verification | Rule: The verification link expires after the platform's window. | TC-PT-1-02-009 |
| 2.2 Email Verification | Rule: A new verification email can be resent. | TC-PT-1-02-010 |
| 2.2 Email Verification | Rule: The account is limited until the email is verified. | TC-PT-1-02-011 |
| 2.2 Email Verification | Rule: Verification events (sent, verified, expired) are logged with the account and the timestamp. | TC-PT-1-02-012 |
| 2.2 Email Verification | Rule: The email verification is audit-logged with the account and the timestamp. | TC-PT-1-02-013 |
| 2.3 Parent Onboarding | Onboarding flow after registration | TC-PT-1-02-017 |
| 2.3 Parent Onboarding | Overview of the Parent panel | TC-PT-1-02-018 |
| 2.3 Parent Onboarding | Prompt to link a child's account | TC-PT-1-02-019 |
| 2.3 Parent Onboarding | Set initial preferences | TC-PT-1-02-020 |
| 2.3 Parent Onboarding | Skip the onboarding | TC-PT-1-02-021 |
| 2.3 Parent Onboarding | Onboarding completed status | TC-PT-1-02-022 |
| 2.3 Parent Onboarding | Onboarding event logging (started, completed, skipped) | TC-PT-1-02-023 |
| 2.3 Parent Onboarding | Audit logging of the parent onboarding | TC-PT-1-02-024 |
| 2.3 Parent Onboarding | Rule: The onboarding starts after registration. | TC-PT-1-02-017 |
| 2.3 Parent Onboarding | Rule: The onboarding prompts to link a child's account. | TC-PT-1-02-018 |
| 2.3 Parent Onboarding | Rule: The onboarding can be skipped. | TC-PT-1-02-019 |
| 2.3 Parent Onboarding | Rule: Onboarding events (started, completed, skipped) are logged with the account and the timestamp. | TC-PT-1-02-020 |
| 2.3 Parent Onboarding | Rule: The parent onboarding is audit-logged with the account and the timestamp. | TC-PT-1-02-021 |

## 2.1 Parent Registration

### TC-PT-1-02-001 — Register with name, email, phone, and password
**Type:** Positive
**Covers:** 2.1 → Register with name, email, phone, and password; Rule: The email must be unique and in a valid format.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Register with name.
2. Observe the result and verify the full behavior: Register with name, email, phone, and password.
**Expected Result:** Register with name, email, phone, and password — delivered exactly as documented.
**Priority:** Critical

### TC-PT-1-02-002 — Email format validation
**Type:** Edge
**Covers:** 2.1 → Email format validation; Rule: The phone must be in a valid format.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Email format validation.
2. Observe the result and verify the full behavior: Email format validation.
**Expected Result:** Email format validation — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-003 — Phone format validation
**Type:** Edge
**Covers:** 2.1 → Phone format validation; Rule: The password must meet the strength requirements.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Phone format validation.
2. Observe the result and verify the full behavior: Phone format validation.
**Expected Result:** Phone format validation — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-004 — Password strength requirements
**Type:** Edge
**Covers:** 2.1 → Password strength requirements; Rule: The terms and conditions must be accepted.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Password strength requirements.
2. Observe the result and verify the full behavior: Password strength requirements.
**Expected Result:** Password strength requirements — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-005 — Terms and conditions acceptance
**Type:** Positive
**Covers:** 2.1 → Terms and conditions acceptance; Rule: Registration events (submitted, created) are logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Terms and conditions acceptance.
2. Observe the result and verify the full behavior: Terms and conditions acceptance.
**Expected Result:** Terms and conditions acceptance — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-006 — Duplicate email check
**Type:** Edge
**Covers:** 2.1 → Duplicate email check; Rule: The parent registration is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Duplicate email check.
2. Observe the result and verify the full behavior: Duplicate email check.
**Expected Result:** Duplicate email check — delivered exactly as documented.
**Priority:** High

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

### TC-PT-1-02-008 — Audit logging of the parent registration
**Type:** Positive
**Covers:** 2.1 → Audit logging of the parent registration
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the parent registration.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.2 Email Verification

### TC-PT-1-02-009 — Verification link sent to the email
**Type:** Positive
**Covers:** 2.2 → Verification link sent to the email; Rule: The verification link expires after the platform's window.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Verification link sent to the email.
2. Observe the result and verify the full behavior: Verification link sent to the email.
**Expected Result:** Verification link sent to the email — delivered exactly as documented.
**Priority:** Critical

### TC-PT-1-02-010 — Click the link to verify
**Type:** Positive
**Covers:** 2.2 → Click the link to verify; Rule: A new verification email can be resent.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Click the link to verify.
2. Observe the result and verify the full behavior: Click the link to verify.
**Expected Result:** Click the link to verify — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-011 — Verification expiry
**Type:** Edge
**Covers:** 2.2 → Verification expiry; Rule: The account is limited until the email is verified.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Verification expiry.
2. Observe the result and verify the full behavior: Verification expiry.
**Expected Result:** Verification expiry — delivered exactly as documented.
**Priority:** High

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

### TC-PT-1-02-013 — Account limited until verified
**Type:** Edge
**Covers:** 2.2 → Account limited until verified; Rule: The email verification is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Account limited until verified.
2. Observe the result and verify the full behavior: Account limited until verified.
**Expected Result:** Account limited until verified — delivered exactly as documented.
**Priority:** High

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

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

### TC-PT-1-02-016 — Audit logging of the email verification
**Type:** Positive
**Covers:** 2.2 → Audit logging of the email verification
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the email verification.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.3 Parent Onboarding

### TC-PT-1-02-017 — Onboarding flow after registration
**Type:** Positive
**Covers:** 2.3 → Onboarding flow after registration; Rule: The onboarding starts after registration.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Onboarding flow after registration.
2. Observe the result and verify the full behavior: Onboarding flow after registration.
**Expected Result:** Onboarding flow after registration — delivered exactly as documented.
**Priority:** Critical

### TC-PT-1-02-018 — Overview of the Parent panel
**Type:** Positive
**Covers:** 2.3 → Overview of the Parent panel; Rule: The onboarding prompts to link a child's account.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Overview of the Parent panel.
2. Observe the result and verify the full behavior: Overview of the Parent panel.
**Expected Result:** Overview of the Parent panel — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-019 — Prompt to link a child's account
**Type:** Positive
**Covers:** 2.3 → Prompt to link a child's account; Rule: The onboarding can be skipped.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Prompt to link a child's account.
2. Observe the result and verify the full behavior: Prompt to link a child's account.
**Expected Result:** Prompt to link a child's account — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-020 — Set initial preferences
**Type:** Positive
**Covers:** 2.3 → Set initial preferences; Rule: Onboarding events (started, completed, skipped) are logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Set initial preferences.
2. Observe the result and verify the full behavior: Set initial preferences.
**Expected Result:** Set initial preferences — delivered exactly as documented.
**Priority:** High

### TC-PT-1-02-021 — Skip the onboarding
**Type:** Positive
**Covers:** 2.3 → Skip the onboarding; Rule: The parent onboarding is audit-logged with the account and the timestamp.
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, set up the precondition and perform: Skip the onboarding.
2. Observe the result and verify the full behavior: Skip the onboarding.
**Expected Result:** Skip the onboarding — delivered exactly as documented.
**Priority:** High

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

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

### TC-PT-1-02-024 — Audit logging of the parent onboarding
**Type:** Positive
**Covers:** 2.3 → Audit logging of the parent onboarding
**Preconditions:** A Parent account is active and the Parent is in the state required for this behavior.
**Steps:**
1. As a Parent, perform the action associated with: Audit logging of the parent onboarding.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical
