# 3. License Renewal & Expiry — Test Cases

User Type: **Training Institute**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: license_renewal_expiry.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 |
|---------|--------------------|----------|
| 3.1 | License renewal flow | TC-TI-3-03-001 |
| 3.1 | Select licenses to renew | TC-TI-3-03-002 |
| 3.1 | Renewal term selection | TC-TI-3-03-003 |
| 3.1 | Expiry extended on payment | TC-TI-3-03-004 |
| 3.1 | Renewal confirmation shown | TC-TI-3-03-005 |
| 3.1 | Bulk renewal supported | TC-TI-3-03-006 |
| 3.1 | Renewal available on web and mobile | TC-TI-3-03-007 |
| 3.1 | Renewal event logging (initiated, completed) | TC-TI-3-03-008 |
| 3.1 | Audit logging of the license renewal | TC-TI-3-03-009 |
| 3.1 | Rule: The expiry is extended from the current expiry date. | TC-TI-3-03-001 |
| 3.1 | Rule: A bulk renewal applies to all selected licenses. | TC-TI-3-03-002 |
| 3.1 | Rule: Renewal events (initiated, completed) are logged with the account and the timestamp. | TC-TI-3-03-003 |
| 3.1 | Rule: The license renewal is audit-logged with the account and the timestamp. | TC-TI-3-03-004 |
| 3.2 | Enable auto-renewal | TC-TI-3-03-010 |
| 3.2 | Disable auto-renewal | TC-TI-3-03-011 |
| 3.2 | Next auto-renewal date shown | TC-TI-3-03-012 |
| 3.2 | Renewal via the payment method on file | TC-TI-3-03-013 |
| 3.2 | Notification before auto-renewal | TC-TI-3-03-014 |
| 3.2 | Auto-renewal available on web and mobile | TC-TI-3-03-015 |
| 3.2 | Auto-renewal event logging (enabled, disabled, renewed) | TC-TI-3-03-016 |
| 3.2 | Audit logging of the auto-renewal | TC-TI-3-03-017 |
| 3.2 | Rule: The auto-renewal uses the payment method on file. | TC-TI-3-03-010 |
| 3.2 | Rule: A notification is sent before the auto-renewal charge. | TC-TI-3-03-011 |
| 3.2 | Rule: Auto-renewal events (enabled, disabled, renewed) are logged with the account and the timestamp. | TC-TI-3-03-012 |
| 3.2 | Rule: The auto-renewal is audit-logged with the account and the timestamp. | TC-TI-3-03-013 |
| 3.3 | Licenses sorted by expiry date | TC-TI-3-03-018 |
| 3.3 | Grace period status shown | TC-TI-3-03-019 |
| 3.3 | Action needed per license | TC-TI-3-03-020 |
| 3.3 | Renew from the expiry view | TC-TI-3-03-021 |
| 3.3 | Reallocate from the expiry view | TC-TI-3-03-022 |
| 3.3 | Expiry view available on web and mobile | TC-TI-3-03-023 |
| 3.3 | Expiry event logging (viewed, action taken) | TC-TI-3-03-024 |
| 3.3 | Audit logging of the expiry management | TC-TI-3-03-025 |
| 3.3 | Rule: The grace period is shown for recently expired licenses. | TC-TI-3-03-018 |
| 3.3 | Rule: A lapsed license revokes the affected students' access. | TC-TI-3-03-019 |
| 3.3 | Rule: Expiry events (viewed, action taken) are logged with the account and the timestamp. | TC-TI-3-03-020 |
| 3.3 | Rule: The expiry management is audit-logged with the account and the timestamp. | TC-TI-3-03-021 |

## 3.1 License Renewal

### TC-TI-3-03-001 — License renewal flow
**Type:** Positive
**Covers:** 3.1 → License renewal flow; Rule: The expiry is extended from the current expiry date.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: License renewal flow.
2. Observe the result and verify the full behavior: License renewal flow.
**Expected Result:** License renewal flow — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-03-002 — Select licenses to renew
**Type:** Positive
**Covers:** 3.1 → Select licenses to renew; Rule: A bulk renewal applies to all selected licenses.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Select licenses to renew.
2. Observe the result and verify the full behavior: Select licenses to renew.
**Expected Result:** Select licenses to renew — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-003 — Renewal term selection
**Type:** Positive
**Covers:** 3.1 → Renewal term selection; Rule: Renewal events (initiated, completed) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Renewal term selection.
2. Observe the result and verify the full behavior: Renewal term selection.
**Expected Result:** Renewal term selection — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-004 — Expiry extended on payment
**Type:** Edge
**Covers:** 3.1 → Expiry extended on payment; Rule: The license renewal is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Expiry extended on payment.
2. Observe the result and verify the full behavior: Expiry extended on payment.
**Expected Result:** Expiry extended on payment — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-005 — Renewal confirmation shown
**Type:** Positive
**Covers:** 3.1 → Renewal confirmation shown
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Renewal confirmation shown.
2. Observe the result and verify the full behavior: Renewal confirmation shown.
**Expected Result:** Renewal confirmation shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-006 — Bulk renewal supported
**Type:** Positive
**Covers:** 3.1 → Bulk renewal supported
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Bulk renewal supported.
2. Observe the result and verify the full behavior: Bulk renewal supported.
**Expected Result:** Bulk renewal supported — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-007 — Renewal available on web and mobile
**Type:** Positive
**Covers:** 3.1 → Renewal available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, 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-TI-3-03-008 — Renewal event logging (initiated, completed)
**Type:** Positive
**Covers:** 3.1 → Renewal event logging (initiated, completed)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Renewal event logging (initiated, completed).
2. Observe the result and verify the full behavior: Renewal event logging (initiated, completed).
**Expected Result:** Renewal event logging (initiated, completed) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-009 — Audit logging of the license renewal
**Type:** Positive
**Covers:** 3.1 → Audit logging of the license renewal
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the license renewal action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The license renewal action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.2 Auto-Renewal

### TC-TI-3-03-010 — Enable auto-renewal
**Type:** Positive
**Covers:** 3.2 → Enable auto-renewal; Rule: The auto-renewal uses the payment method on file.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Enable auto-renewal.
2. Observe the result and verify the full behavior: Enable auto-renewal.
**Expected Result:** Enable auto-renewal — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-03-011 — Disable auto-renewal
**Type:** Positive
**Covers:** 3.2 → Disable auto-renewal; Rule: A notification is sent before the auto-renewal charge.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Disable auto-renewal.
2. Observe the result and verify the full behavior: Disable auto-renewal.
**Expected Result:** Disable auto-renewal — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-012 — Next auto-renewal date shown
**Type:** Positive
**Covers:** 3.2 → Next auto-renewal date shown; Rule: Auto-renewal events (enabled, disabled, renewed) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Next auto-renewal date shown.
2. Observe the result and verify the full behavior: Next auto-renewal date shown.
**Expected Result:** Next auto-renewal date shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-013 — Renewal via the payment method on file
**Type:** Positive
**Covers:** 3.2 → Renewal via the payment method on file; Rule: The auto-renewal is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Renewal via the payment method on file.
2. Observe the result and verify the full behavior: Renewal via the payment method on file.
**Expected Result:** Renewal via the payment method on file — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-014 — Notification before auto-renewal
**Type:** Positive
**Covers:** 3.2 → Notification before auto-renewal
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Notification before auto-renewal.
2. Observe the result and verify the full behavior: Notification before auto-renewal.
**Expected Result:** Notification before auto-renewal — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-015 — Auto-renewal available on web and mobile
**Type:** Positive
**Covers:** 3.2 → Auto-renewal available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Auto-renewal available on web and mobile.
2. Observe the result and verify the full behavior: Auto-renewal available on web and mobile.
**Expected Result:** Auto-renewal available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-016 — Auto-renewal event logging (enabled, disabled, renewed)
**Type:** Positive
**Covers:** 3.2 → Auto-renewal event logging (enabled, disabled, renewed)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Auto-renewal event logging (enabled, disabled, renewed).
2. Observe the result and verify the full behavior: Auto-renewal event logging (enabled, disabled, renewed).
**Expected Result:** Auto-renewal event logging (enabled, disabled, renewed) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-017 — Audit logging of the auto-renewal
**Type:** Positive
**Covers:** 3.2 → Audit logging of the auto-renewal
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the auto-renewal action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The auto-renewal action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.3 Expiry Management

### TC-TI-3-03-018 — Licenses sorted by expiry date
**Type:** Edge
**Covers:** 3.3 → Licenses sorted by expiry date; Rule: The grace period is shown for recently expired licenses.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Licenses sorted by expiry date.
2. Observe the result and verify the full behavior: Licenses sorted by expiry date.
**Expected Result:** Licenses sorted by expiry date — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-03-019 — Grace period status shown
**Type:** Positive
**Covers:** 3.3 → Grace period status shown; Rule: A lapsed license revokes the affected students' access.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Grace period status shown.
2. Observe the result and verify the full behavior: Grace period status shown.
**Expected Result:** Grace period status shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-020 — Action needed per license
**Type:** Positive
**Covers:** 3.3 → Action needed per license; Rule: Expiry events (viewed, action taken) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Action needed per license.
2. Observe the result and verify the full behavior: Action needed per license.
**Expected Result:** Action needed per license — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-021 — Renew from the expiry view
**Type:** Edge
**Covers:** 3.3 → Renew from the expiry view; Rule: The expiry management is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Renew from the expiry view.
2. Observe the result and verify the full behavior: Renew from the expiry view.
**Expected Result:** Renew from the expiry view — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-022 — Reallocate from the expiry view
**Type:** Edge
**Covers:** 3.3 → Reallocate from the expiry view
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Reallocate from the expiry view.
2. Observe the result and verify the full behavior: Reallocate from the expiry view.
**Expected Result:** Reallocate from the expiry view — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-023 — Expiry view available on web and mobile
**Type:** Edge
**Covers:** 3.3 → Expiry view available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Expiry view available on web and mobile.
2. Observe the result and verify the full behavior: Expiry view available on web and mobile.
**Expected Result:** Expiry view available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-024 — Expiry event logging (viewed, action taken)
**Type:** Edge
**Covers:** 3.3 → Expiry event logging (viewed, action taken)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Expiry event logging (viewed, action taken).
2. Observe the result and verify the full behavior: Expiry event logging (viewed, action taken).
**Expected Result:** Expiry event logging (viewed, action taken) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-03-025 — Audit logging of the expiry management
**Type:** Edge
**Covers:** 3.3 → Audit logging of the expiry management
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the expiry management action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The expiry management action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
