# 4. Renewals & Plan Changes — Test Cases

User Type: **Parent**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: renewals_plan_changes.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 |
|---------|--------------------|----------|
| 4.1 Subscription Renewal Management | View the upcoming renewal | TC-PT-8-04-001 |
| 4.1 Subscription Renewal Management | Enable or disable auto-renewal | TC-PT-8-04-002 |
| 4.1 Subscription Renewal Management | Change the renewal date | TC-PT-8-04-003 |
| 4.1 Subscription Renewal Management | Renewal reminder to the Parent | TC-PT-8-04-004 |
| 4.1 Subscription Renewal Management | Renewal status (auto-renew on, off) | TC-PT-8-04-005 |
| 4.1 Subscription Renewal Management | Renewal available on web and mobile | TC-PT-8-04-006 |
| 4.1 Subscription Renewal Management | Renewal event logging (viewed, changed) | TC-PT-8-04-007 |
| 4.1 Subscription Renewal Management | Audit logging of the subscription renewal management | TC-PT-8-04-008 |
| 4.1 Subscription Renewal Management | Rule: The renewal can be auto or manual. | TC-PT-8-04-001 |
| 4.1 Subscription Renewal Management | Rule: The renewal date can be changed. | TC-PT-8-04-002 |
| 4.1 Subscription Renewal Management | Rule: A reminder is sent before the renewal. | TC-PT-8-04-003 |
| 4.1 Subscription Renewal Management | Rule: Renewal events (viewed, changed) are logged with the account and the timestamp. | TC-PT-8-04-004 |
| 4.1 Subscription Renewal Management | Rule: The subscription renewal management is audit-logged with the account and the timestamp. | TC-PT-8-04-005 |
| 4.2 Upgrade or Downgrade the Plan | Upgrade the subscription plan | TC-PT-8-04-009 |
| 4.2 Upgrade or Downgrade the Plan | Downgrade the subscription plan | TC-PT-8-04-010 |
| 4.2 Upgrade or Downgrade the Plan | Prorated billing adjustment | TC-PT-8-04-011 |
| 4.2 Upgrade or Downgrade the Plan | Child's access updated to the new plan | TC-PT-8-04-012 |
| 4.2 Upgrade or Downgrade the Plan | Plan change confirmation | TC-PT-8-04-013 |
| 4.2 Upgrade or Downgrade the Plan | Plan change history | TC-PT-8-04-014 |
| 4.2 Upgrade or Downgrade the Plan | Changes available on web and mobile | TC-PT-8-04-015 |
| 4.2 Upgrade or Downgrade the Plan | Change event logging (upgraded, downgraded) | TC-PT-8-04-016 |
| 4.2 Upgrade or Downgrade the Plan | Audit logging of the upgrade or downgrade the plan | TC-PT-8-04-017 |
| 4.2 Upgrade or Downgrade the Plan | Rule: The plan can be upgraded or downgraded. | TC-PT-8-04-009 |
| 4.2 Upgrade or Downgrade the Plan | Rule: A prorated billing adjustment is applied. | TC-PT-8-04-010 |
| 4.2 Upgrade or Downgrade the Plan | Rule: The child's access is updated to the new plan. | TC-PT-8-04-011 |
| 4.2 Upgrade or Downgrade the Plan | Rule: Change events (upgraded, downgraded) are logged with the account and the timestamp. | TC-PT-8-04-012 |
| 4.2 Upgrade or Downgrade the Plan | Rule: The upgrade or downgrade the plan is audit-logged with the account and the timestamp. | TC-PT-8-04-013 |
| 4.3 Cancel the Subscription | Initiate the subscription cancellation | TC-PT-8-04-018 |
| 4.3 Cancel the Subscription | Review the cancellation terms | TC-PT-8-04-019 |
| 4.3 Cancel the Subscription | Access until the end of the billing period | TC-PT-8-04-020 |
| 4.3 Cancel the Subscription | Cancellation confirmation | TC-PT-8-04-021 |
| 4.3 Cancel the Subscription | Cancellation reason (optional) | TC-PT-8-04-022 |
| 4.3 Cancel the Subscription | Cancellation available on web and mobile | TC-PT-8-04-023 |
| 4.3 Cancel the Subscription | Cancellation event logging (initiated, confirmed) | TC-PT-8-04-024 |
| 4.3 Cancel the Subscription | Audit logging of the cancel the subscription | TC-PT-8-04-025 |
| 4.3 Cancel the Subscription | Rule: The cancellation is initiated by the Parent. | TC-PT-8-04-018 |
| 4.3 Cancel the Subscription | Rule: The access continues until the end of the billing period. | TC-PT-8-04-019 |
| 4.3 Cancel the Subscription | Rule: A cancellation confirmation is shown. | TC-PT-8-04-020 |
| 4.3 Cancel the Subscription | Rule: Cancellation events (initiated, confirmed) are logged with the account and the timestamp. | TC-PT-8-04-021 |
| 4.3 Cancel the Subscription | Rule: The cancel the subscription is audit-logged with the account and the timestamp. | TC-PT-8-04-022 |

## 4.1 Subscription Renewal Management

### TC-PT-8-04-001 — View the upcoming renewal
**Type:** Positive
**Covers:** 4.1 → View the upcoming renewal; Rule: The renewal can be auto or manual.
**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: View the upcoming renewal.
2. Observe the result and verify the full behavior: View the upcoming renewal.
**Expected Result:** View the upcoming renewal — delivered exactly as documented.
**Priority:** Critical

### TC-PT-8-04-002 — Enable or disable auto-renewal
**Type:** Positive
**Covers:** 4.1 → Enable or disable auto-renewal; Rule: The renewal date can be changed.
**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: Enable or disable auto-renewal.
2. Observe the result and verify the full behavior: Enable or disable auto-renewal.
**Expected Result:** Enable or disable auto-renewal — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-003 — Change the renewal date
**Type:** Positive
**Covers:** 4.1 → Change the renewal date; Rule: A reminder is sent before the renewal.
**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: Change the renewal date.
2. Observe the result and verify the full behavior: Change the renewal date.
**Expected Result:** Change the renewal date — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-004 — Renewal reminder to the Parent
**Type:** Positive
**Covers:** 4.1 → Renewal reminder to the Parent; Rule: Renewal events (viewed, changed) 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: Renewal reminder to the Parent.
2. Observe the result and verify the full behavior: Renewal reminder to the Parent.
**Expected Result:** Renewal reminder to the Parent — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-005 — Renewal status (auto-renew on, off)
**Type:** Positive
**Covers:** 4.1 → Renewal status (auto-renew on, off); Rule: The subscription renewal management 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: Renewal status (auto-renew on.
2. Observe the result and verify the full behavior: Renewal status (auto-renew on, off).
**Expected Result:** Renewal status (auto-renew on, off) — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-006 — Renewal available on web and mobile
**Type:** Positive
**Covers:** 4.1 → Renewal available on web and mobile
**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: Renewal available on web and mobile.
2. Observe the result and verify the full behavior: Renewal available on web and mobile.
**Expected Result:** Renewal available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-007 — Renewal event logging (viewed, changed)
**Type:** Positive
**Covers:** 4.1 → Renewal event logging (viewed, changed)
**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: Renewal event logging (viewed.
2. Observe the result and verify the full behavior: Renewal event logging (viewed, changed).
**Expected Result:** Renewal event logging (viewed, changed) — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-008 — Audit logging of the subscription renewal management
**Type:** Positive
**Covers:** 4.1 → Audit logging of the subscription renewal management
**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 subscription renewal management.
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

## 4.2 Upgrade or Downgrade the Plan

### TC-PT-8-04-009 — Upgrade the subscription plan
**Type:** Positive
**Covers:** 4.2 → Upgrade the subscription plan; Rule: The plan can be upgraded or downgraded.
**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: Upgrade the subscription plan.
2. Observe the result and verify the full behavior: Upgrade the subscription plan.
**Expected Result:** Upgrade the subscription plan — delivered exactly as documented.
**Priority:** Critical

### TC-PT-8-04-010 — Downgrade the subscription plan
**Type:** Positive
**Covers:** 4.2 → Downgrade the subscription plan; Rule: A prorated billing adjustment is applied.
**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: Downgrade the subscription plan.
2. Observe the result and verify the full behavior: Downgrade the subscription plan.
**Expected Result:** Downgrade the subscription plan — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-011 — Prorated billing adjustment
**Type:** Positive
**Covers:** 4.2 → Prorated billing adjustment; Rule: The child's access is updated to the new plan.
**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: Prorated billing adjustment.
2. Observe the result and verify the full behavior: Prorated billing adjustment.
**Expected Result:** Prorated billing adjustment — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-012 — Child's access updated to the new plan
**Type:** Positive
**Covers:** 4.2 → Child's access updated to the new plan; Rule: Change events (upgraded, downgraded) 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: Child's access updated to the new plan.
2. Observe the result and verify the full behavior: Child's access updated to the new plan.
**Expected Result:** Child's access updated to the new plan — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-013 — Plan change confirmation
**Type:** Positive
**Covers:** 4.2 → Plan change confirmation; Rule: The upgrade or downgrade the plan 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: Plan change confirmation.
2. Observe the result and verify the full behavior: Plan change confirmation.
**Expected Result:** Plan change confirmation — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-014 — Plan change history
**Type:** Positive
**Covers:** 4.2 → Plan change history
**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: Plan change history.
2. Observe the result and verify the full behavior: Plan change history.
**Expected Result:** Plan change history — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-015 — Changes available on web and mobile
**Type:** Positive
**Covers:** 4.2 → Changes available on web and mobile
**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: Changes available on web and mobile.
2. Observe the result and verify the full behavior: Changes available on web and mobile.
**Expected Result:** Changes available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-016 — Change event logging (upgraded, downgraded)
**Type:** Positive
**Covers:** 4.2 → Change event logging (upgraded, downgraded)
**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: Change event logging (upgraded.
2. Observe the result and verify the full behavior: Change event logging (upgraded, downgraded).
**Expected Result:** Change event logging (upgraded, downgraded) — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-017 — Audit logging of the upgrade or downgrade the plan
**Type:** Positive
**Covers:** 4.2 → Audit logging of the upgrade or downgrade the plan
**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 upgrade or downgrade the plan.
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

## 4.3 Cancel the Subscription

### TC-PT-8-04-018 — Initiate the subscription cancellation
**Type:** Positive
**Covers:** 4.3 → Initiate the subscription cancellation; Rule: The cancellation is initiated by the Parent.
**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: Initiate the subscription cancellation.
2. Observe the result and verify the full behavior: Initiate the subscription cancellation.
**Expected Result:** Initiate the subscription cancellation — delivered exactly as documented.
**Priority:** Critical

### TC-PT-8-04-019 — Review the cancellation terms
**Type:** Positive
**Covers:** 4.3 → Review the cancellation terms; Rule: The access continues until the end of the billing period.
**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: Review the cancellation terms.
2. Observe the result and verify the full behavior: Review the cancellation terms.
**Expected Result:** Review the cancellation terms — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-020 — Access until the end of the billing period
**Type:** Positive
**Covers:** 4.3 → Access until the end of the billing period; Rule: A cancellation confirmation is 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: Access until the end of the billing period.
2. Observe the result and verify the full behavior: Access until the end of the billing period.
**Expected Result:** Access until the end of the billing period — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-021 — Cancellation confirmation
**Type:** Positive
**Covers:** 4.3 → Cancellation confirmation; Rule: Cancellation events (initiated, confirmed) 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: Cancellation confirmation.
2. Observe the result and verify the full behavior: Cancellation confirmation.
**Expected Result:** Cancellation confirmation — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-022 — Cancellation reason (optional)
**Type:** Positive
**Covers:** 4.3 → Cancellation reason (optional); Rule: The cancel the subscription 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: Cancellation reason (optional).
2. Observe the result and verify the full behavior: Cancellation reason (optional).
**Expected Result:** Cancellation reason (optional) — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-023 — Cancellation available on web and mobile
**Type:** Positive
**Covers:** 4.3 → Cancellation available on web and mobile
**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: Cancellation available on web and mobile.
2. Observe the result and verify the full behavior: Cancellation available on web and mobile.
**Expected Result:** Cancellation available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-024 — Cancellation event logging (initiated, confirmed)
**Type:** Positive
**Covers:** 4.3 → Cancellation event logging (initiated, confirmed)
**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: Cancellation event logging (initiated.
2. Observe the result and verify the full behavior: Cancellation event logging (initiated, confirmed).
**Expected Result:** Cancellation event logging (initiated, confirmed) — delivered exactly as documented.
**Priority:** High

### TC-PT-8-04-025 — Audit logging of the cancel the subscription
**Type:** Positive
**Covers:** 4.3 → Audit logging of the cancel the subscription
**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 cancel the subscription.
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
