# 2. Professional Subscription Plans — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: professional_subscription_plans.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 Pay-Per-Course Model | Pay-per-course plan: the plan for a single course (the course, the price, the access duration) | TC-SA-11-02-001 |
| 2.1 Pay-Per-Course Model | Course scope: the access limited to the one course (the content, the assessments) | TC-SA-11-02-002 |
| 2.1 Pay-Per-Course Model | Access duration: the access duration (the defined period, or the lifetime) | TC-SA-11-02-003 |
| 2.1 Pay-Per-Course Model | Plan definition: the plan defined by the Super Admin (the course, the price, the duration) | TC-SA-11-02-001 |
| 2.1 Pay-Per-Course Model | Purchase activation: the access granted on the purchase (the course's content available) | TC-SA-11-02-004 |
| 2.1 Pay-Per-Course Model | Purchase record: the purchase recorded (the course, the price, the time) | TC-SA-11-02-005 |
| 2.1 Pay-Per-Course Model | Audit logging of the plan definition and the purchases | TC-SA-11-02-006 |
| 2.1 Pay-Per-Course Model | Rule: the pay-per-course plan is for a single course; the access is limited to that course (the content, the assessments) | TC-SA-11-02-002 |
| 2.1 Pay-Per-Course Model | Rule: the access duration is the defined period or the lifetime; the duration is explicit | TC-SA-11-02-003 |
| 2.1 Pay-Per-Course Model | Rule: the purchase activation grants the access (the course's content available); the duration end ends it (the renewal/extension) | TC-SA-11-02-004, TC-SA-11-02-007 |
| 2.1 Pay-Per-Course Model | Rule: a plan adjustment (the price, the duration) is recorded (the change, the time); it is auditable | TC-SA-11-02-008 |
| 2.1 Pay-Per-Course Model | Rule: the pay-per-course purchases are visible (the count, the courses, the prices); the demand is managed | TC-SA-11-02-009 |
| 2.1 Pay-Per-Course Model | Rule: plan definition and purchases are audit-logged with the plan, course, and timestamp | TC-SA-11-02-006 |
| 2.2 Lifetime Access Option | Lifetime access plan: the plan for the lifetime access (the course, the one-time price) | TC-SA-11-02-010 |
| 2.2 Lifetime Access Option | Lifetime scope: the access is permanent (no renewal, no expiry) | TC-SA-11-02-011 |
| 2.2 Lifetime Access Option | One-time price: the price is a one-time payment (not a recurring subscription) | TC-SA-11-02-012 |
| 2.2 Lifetime Access Option | Plan definition: the plan defined by the Super Admin (the course, the one-time price) | TC-SA-11-02-010 |
| 2.2 Lifetime Access Option | Purchase activation: the access granted on the purchase (the course's content available for life) | TC-SA-11-02-013 |
| 2.2 Lifetime Access Option | Purchase record: the purchase recorded (the course, the price, the time) | TC-SA-11-02-014 |
| 2.2 Lifetime Access Option | Audit logging of the plan definition and the purchases | TC-SA-11-02-015 |
| 2.2 Lifetime Access Option | Rule: the lifetime access is permanent (no renewal, no expiry); the one-time price is the value | TC-SA-11-02-011, TC-SA-11-02-012 |
| 2.2 Lifetime Access Option | Rule: the lifetime scope is the course (the content, the assessments); the access is to the course, not a frozen version | TC-SA-11-02-016 |
| 2.2 Lifetime Access Option | Rule: a content update (a new version) is included in the lifetime access (the access is to the course); the update is the continuation | TC-SA-11-02-016 |
| 2.2 Lifetime Access Option | Rule: a plan adjustment (the one-time price) is recorded (the change, the time); it is auditable | TC-SA-11-02-017 |
| 2.2 Lifetime Access Option | Rule: the lifetime purchases are visible (the count, the courses, the prices); the demand is managed | TC-SA-11-02-018 |
| 2.2 Lifetime Access Option | Rule: plan definition and purchases are audit-logged with the plan, course, and timestamp | TC-SA-11-02-015 |
| 2.3 Installment Payment Plans | Installment plan: the plan for the installments (the course, the total price, the installments, the schedule) | TC-SA-11-02-019 |
| 2.3 Installment Payment Plans | Installment schedule: the payments over the period (the count, the amount, the due dates) | TC-SA-11-02-020 |
| 2.3 Installment Payment Plans | Total price: the total is the sum of the installments (the price is the same, the payment is split) | TC-SA-11-02-021 |
| 2.3 Installment Payment Plans | Plan definition: the plan defined by the Super Admin (the course, the total, the installments, the schedule) | TC-SA-11-02-019 |
| 2.3 Installment Payment Plans | Purchase activation: the access granted on the first installment (the course's content available) | TC-SA-11-02-022 |
| 2.3 Installment Payment Plans | Installment tracking: the installments tracked (the paid, the due, the overdue) | TC-SA-11-02-023 |
| 2.3 Installment Payment Plans | Audit logging of the plan definition and the installments | TC-SA-11-02-024 |
| 2.3 Installment Payment Plans | Rule: the installment plan is the price split into the payments (the count, the amount, the schedule); the total is the sum | TC-SA-11-02-020, TC-SA-11-02-021 |
| 2.3 Installment Payment Plans | Rule: the access is granted on the first installment (the course's content available); the installments are the continuation | TC-SA-11-02-022 |
| 2.3 Installment Payment Plans | Rule: the installments are tracked (the paid, the due, the overdue); the tracking is the status | TC-SA-11-02-023 |
| 2.3 Installment Payment Plans | Rule: an overdue installment triggers the notification (the reminder); the access is at risk (the suspension is the consequence) | TC-SA-11-02-025 |
| 2.3 Installment Payment Plans | Rule: a plan adjustment (the installments, the schedule) is recorded (the change, the time); it is auditable | TC-SA-11-02-026 |
| 2.3 Installment Payment Plans | Rule: plan definition and installments are audit-logged with the plan, course, and timestamp | TC-SA-11-02-024 |
| 2.4 Course Bundles (Related Courses) | Course bundle: the plan for a set of related courses (the courses, the discount, the access duration) | TC-SA-11-02-027 |
| 2.4 Course Bundles (Related Courses) | Bundle discount: the bundle price is lower than the individual courses | TC-SA-11-02-028 |
| 2.4 Course Bundles (Related Courses) | Course set: the courses in the bundle (the related courses, the skill path) | TC-SA-11-02-029 |
| 2.4 Course Bundles (Related Courses) | Bundle definition: the bundle defined by the Super Admin (the courses, the discount, the duration) | TC-SA-11-02-027 |
| 2.4 Course Bundles (Related Courses) | Subscription activation: the access granted to the bundle's courses (the content available) | TC-SA-11-02-030 |
| 2.4 Course Bundles (Related Courses) | Bundle expiry: the access ending at the duration end (the renewal prompt) | TC-SA-11-02-031 |
| 2.4 Course Bundles (Related Courses) | Audit logging of the bundle definition and the subscriptions | TC-SA-11-02-032 |
| 2.4 Course Bundles (Related Courses) | Rule: the course bundle is for a set of related courses (the skill path); the access is to the bundle's courses | TC-SA-11-02-029 |
| 2.4 Course Bundles (Related Courses) | Rule: the bundle discount is the price advantage (the bundle is cheaper than the individual); the discount is the incentive | TC-SA-11-02-028 |
| 2.4 Course Bundles (Related Courses) | Rule: the course set is the related courses (the skill path); it is explicit | TC-SA-11-02-029 |
| 2.4 Course Bundles (Related Courses) | Rule: the subscription activation grants the access (the bundle's courses available); the expiry ends it (the renewal prompt) | TC-SA-11-02-030, TC-SA-11-02-031 |
| 2.4 Course Bundles (Related Courses) | Rule: a bundle adjustment (the discount, the duration) is recorded (the change, the time); it is auditable | TC-SA-11-02-033 |
| 2.4 Course Bundles (Related Courses) | Rule: bundle definition and subscriptions are audit-logged with the bundle, courses, and timestamp | TC-SA-11-02-032 |

## 2.1 Pay-Per-Course Model

### TC-SA-11-02-001 — Pay-per-course plan: the plan for a single course (the course, the price, the access duration)
**Type:** Positive
**Covers:** 2.1 → Pay-per-course plan: the plan for a single course (the course, the price, the access duration); Plan definition: the plan defined by the Super Admin (the course, the price, the duration)
**Preconditions:** The Super Admin opens the professional subscription plans.
**Steps:**
1. Define the pay-per-course plan: the course (the one the learner buys), the price, and the access duration (the defined period, or the lifetime).
2. Save the plan.
3. Verify the plan is live and a learner can buy the course.
**Expected Result:** The pay-per-course plan is defined (the course, the price, the duration) — the plan is live and purchasable.
**Priority:** Critical

### TC-SA-11-02-002 — Course scope: the access limited to the one course (the content, the assessments)
**Type:** Negative
**Covers:** 2.1 → Course scope: the access limited to the one course (the content, the assessments); Rule: the pay-per-course plan is for a single course; the access is limited to that course
**Preconditions:** A learner has bought a single course.
**Steps:**
1. As the learner, access the bought course's content and assessments.
2. Attempt to access a different course.
3. Verify the access is limited to the one course (the other courses are not included).
**Expected Result:** The access is limited to the one course — the other courses are not accessible.
**Priority:** Critical

### TC-SA-11-02-003 — Access duration: the access duration (the defined period, or the lifetime); the duration is explicit
**Type:** Positive
**Covers:** 2.1 → Access duration: the access duration (the defined period, or the lifetime); Rule: the access duration is the defined period or the lifetime; the duration is explicit
**Preconditions:** A pay-per-course plan is defined.
**Steps:**
1. Verify the access duration is set (the defined period, or the lifetime).
2. Verify the duration is explicit.
**Expected Result:** The access duration is set — the defined period or the lifetime is explicit.
**Priority:** High

### TC-SA-11-02-004 — Purchase activation: the access granted on the purchase (the course's content available)
**Type:** Positive
**Covers:** 2.1 → Purchase activation: the access granted on the purchase (the course's content available); Rule: the purchase activation grants the access (the course's content available)
**Preconditions:** A learner buys a course.
**Steps:**
1. Buy the course.
2. Verify the access is granted (the course's content is available for the duration).
**Expected Result:** The access is granted on the purchase — the course's content is available.
**Priority:** Critical

### TC-SA-11-02-005 — Purchase record: the purchase recorded (the course, the price, the time)
**Type:** Positive
**Covers:** 2.1 → Purchase record: the purchase recorded (the course, the price, the time)
**Preconditions:** A course has been bought.
**Steps:**
1. Open the purchase record.
2. Verify it shows the course, the price, and the time.
**Expected Result:** The purchase is recorded — the course, the price, and the time are shown.
**Priority:** High

### TC-SA-11-02-006 — Plan definition and purchases are audit-logged with the plan, course, and timestamp
**Type:** Positive
**Covers:** 2.1 → Audit logging of the plan definition and the purchases; Rule: plan definition and purchases are audit-logged with the plan, course, and timestamp
**Preconditions:** Plan definition and purchase events have occurred.
**Steps:**
1. Open the audit trail and filter by "pay-per-course".
2. Verify entries show the plan, the course, and the timestamp.
**Expected Result:** The plan definition and purchases are audit-logged with the plan, course, and timestamp.
**Priority:** Critical

### TC-SA-11-02-007 — For a defined-duration access, the access ends at the duration end (the renewal/extension is the continuation)
**Type:** Edge
**Covers:** 2.1 → Rule: the purchase activation grants the access (the course's content available); the duration end ends it (the renewal/extension)
**Preconditions:** A course is bought with a defined-duration access and the duration is ending.
**Steps:**
1. Wait for the duration end.
2. Verify the access ends at the duration end.
3. Verify the learner is prompted to renew/extend (the continuation).
**Expected Result:** The access ends at the duration end — the renewal/extension is the continuation.
**Priority:** Critical

### TC-SA-11-02-008 — A plan adjustment (the price, the duration) is recorded (the change, the time); it is auditable
**Type:** Positive
**Covers:** 2.1 → Rule: a plan adjustment (the price, the duration) is recorded (the change, the time); it is auditable
**Preconditions:** A pay-per-course plan is live.
**Steps:**
1. Adjust the plan (change the price, the duration).
2. Verify the adjustment is recorded (the change, the time).
3. Verify the change is auditable.
**Expected Result:** The plan adjustment is recorded (the change, the time) — it is auditable.
**Priority:** High

### TC-SA-11-02-009 — The pay-per-course purchases are visible (the count, the courses, the prices); the demand is managed
**Type:** Positive
**Covers:** 2.1 → Rule: the pay-per-course purchases are visible (the count, the courses, the prices); the demand is managed
**Preconditions:** Multiple pay-per-course purchases exist.
**Steps:**
1. Open the pay-per-course purchases view.
2. Verify the count, the courses, and the prices are visible.
3. Verify the pay-per-course demand is visible.
**Expected Result:** The pay-per-course purchases are visible (the count, the courses, the prices) — the demand is managed.
**Priority:** Medium

## 2.2 Lifetime Access Option

### TC-SA-11-02-010 — Lifetime access plan: the plan for the lifetime access (the course, the one-time price)
**Type:** Positive
**Covers:** 2.2 → Lifetime access plan: the plan for the lifetime access (the course, the one-time price); Plan definition: the plan defined by the Super Admin (the course, the one-time price)
**Preconditions:** The Super Admin opens the professional subscription plans.
**Steps:**
1. Define the lifetime access plan: the course (the one the learner buys), and the one-time price (the premium to the subscription).
2. Save the plan.
3. Verify the plan is live and a learner can buy the lifetime access.
**Expected Result:** The lifetime access plan is defined (the course, the one-time price) — the plan is live and purchasable.
**Priority:** Critical

### TC-SA-11-02-011 — Lifetime scope: the access is permanent (no renewal, no expiry)
**Type:** Negative
**Covers:** 2.2 → Lifetime scope: the access is permanent (no renewal, no expiry); Rule: the lifetime access is permanent (no renewal, no expiry)
**Preconditions:** A learner has bought lifetime access to a course.
**Steps:**
1. Verify the access is permanent (no renewal, no expiry).
2. Wait past the period where a subscription would expire.
3. Verify the access is still available (it does not expire).
**Expected Result:** The access is permanent — no renewal, no expiry; the access remains available.
**Priority:** Critical

### TC-SA-11-02-012 — One-time price: the price is a one-time payment (not a recurring subscription)
**Type:** Negative
**Covers:** 2.2 → One-time price: the price is a one-time payment (not a recurring subscription); Rule: the one-time price is the value
**Preconditions:** A learner buys lifetime access.
**Steps:**
1. Buy the lifetime access (the one-time payment).
2. Verify the price is a one-time payment (not a recurring subscription).
3. Verify no recurring charge is applied after the purchase.
**Expected Result:** The price is a one-time payment — no recurring subscription charge is applied.
**Priority:** Critical

### TC-SA-11-02-013 — Purchase activation: the access granted on the purchase (the course's content available for life)
**Type:** Positive
**Covers:** 2.2 → Purchase activation: the access granted on the purchase (the course's content available for life)
**Preconditions:** A learner buys lifetime access.
**Steps:**
1. Buy the lifetime access.
2. Verify the access is granted (the course's content is available for life).
**Expected Result:** The access is granted on the purchase — the course's content is available for life.
**Priority:** Critical

### TC-SA-11-02-014 — Purchase record: the purchase recorded (the course, the price, the time)
**Type:** Positive
**Covers:** 2.2 → Purchase record: the purchase recorded (the course, the price, the time)
**Preconditions:** A lifetime access purchase has occurred.
**Steps:**
1. Open the purchase record.
2. Verify it shows the course, the price, and the time.
**Expected Result:** The purchase is recorded — the course, the price, and the time are shown.
**Priority:** High

### TC-SA-11-02-015 — Plan definition and purchases are audit-logged with the plan, course, and timestamp
**Type:** Positive
**Covers:** 2.2 → Audit logging of the plan definition and the purchases; Rule: plan definition and purchases are audit-logged with the plan, course, and timestamp
**Preconditions:** Plan definition and purchase events have occurred.
**Steps:**
1. Open the audit trail and filter by "lifetime access".
2. Verify entries show the plan, the course, and the timestamp.
**Expected Result:** The plan definition and purchases are audit-logged with the plan, course, and timestamp.
**Priority:** Critical

### TC-SA-11-02-016 — A content update (a new version) is included in the lifetime access (the access is to the course, not a frozen version); the update is the continuation
**Type:** Positive
**Covers:** 2.2 → Rule: the lifetime scope is the course (the content, the assessments); the access is to the course, not a frozen version; a content update (a new version) is included in the lifetime access; the update is the continuation
**Preconditions:** A learner has lifetime access to a course and the course content is updated (a new version).
**Steps:**
1. Update the course content (a new version).
2. As the lifetime-access learner, verify the update is included (the new version is accessible).
3. Verify the access is to the course, not a frozen version.
**Expected Result:** The content update is included in the lifetime access — the access is to the course, not a frozen version; the update is the continuation.
**Priority:** High

### TC-SA-11-02-017 — A plan adjustment (the one-time price) is recorded (the change, the time); it is auditable
**Type:** Positive
**Covers:** 2.2 → Rule: a plan adjustment (the one-time price) is recorded (the change, the time); it is auditable
**Preconditions:** A lifetime access plan is live.
**Steps:**
1. Adjust the plan (change the one-time price).
2. Verify the adjustment is recorded (the change, the time).
3. Verify the change is auditable.
**Expected Result:** The plan adjustment is recorded (the change, the time) — it is auditable.
**Priority:** High

### TC-SA-11-02-018 — The lifetime purchases are visible (the count, the courses, the prices); the demand is managed
**Type:** Positive
**Covers:** 2.2 → Rule: the lifetime purchases are visible (the count, the courses, the prices); the demand is managed
**Preconditions:** Multiple lifetime purchases exist.
**Steps:**
1. Open the lifetime purchases view.
2. Verify the count, the courses, and the prices are visible.
3. Verify the lifetime demand is visible.
**Expected Result:** The lifetime purchases are visible (the count, the courses, the prices) — the demand is managed.
**Priority:** Medium

## 2.3 Installment Payment Plans

### TC-SA-11-02-019 — Installment plan: the plan for the installments (the course, the total price, the installments, the schedule)
**Type:** Positive
**Covers:** 2.3 → Installment plan: the plan for the installments (the course, the total price, the installments, the schedule); Plan definition: the plan defined by the Super Admin (the course, the total, the installments, the schedule)
**Preconditions:** The Super Admin opens the professional subscription plans.
**Steps:**
1. Define the installment plan: the course (the one the learner buys), the total price, the installments (the count, the amount), and the schedule (the due dates).
2. Save the plan.
3. Verify the plan is live and a learner can buy the course with the installments.
**Expected Result:** The installment plan is defined (the course, the total, the installments, the schedule) — the plan is live and purchasable.
**Priority:** Critical

### TC-SA-11-02-020 — Installment schedule: the payments over the period (the count, the amount, the due dates)
**Type:** Positive
**Covers:** 2.3 → Installment schedule: the payments over the period (the count, the amount, the due dates); Rule: the installment plan is the price split into the payments (the count, the amount, the schedule)
**Preconditions:** An installment plan is defined.
**Steps:**
1. Verify the installment schedule is set (the count, the amount, the due dates).
2. Verify the payments are over the period.
**Expected Result:** The installment schedule is set — the count, the amount, and the due dates are defined.
**Priority:** High

### TC-SA-11-02-021 — Total price: the total is the sum of the installments (the price is the same, the payment is split)
**Type:** Negative
**Covers:** 2.3 → Total price: the total is the sum of the installments (the price is the same, the payment is split); Rule: the total is the sum
**Preconditions:** An installment plan is defined.
**Steps:**
1. Sum the installments (the count × the amount).
2. Verify the total equals the sum of the installments.
3. Verify the price is the same (the payment is split, not discounted).
**Expected Result:** The total is the sum of the installments — the price is the same, the payment is split.
**Priority:** Critical

### TC-SA-11-02-022 — Purchase activation: the access granted on the first installment (the course's content available)
**Type:** Positive
**Covers:** 2.3 → Purchase activation: the access granted on the first installment (the course's content available); Rule: the access is granted on the first installment (the course's content available); the installments are the continuation
**Preconditions:** A learner buys a course with installments and pays the first installment.
**Steps:**
1. Pay the first installment.
2. Verify the access is granted (the course's content is available).
**Expected Result:** The access is granted on the first installment — the course's content is available.
**Priority:** Critical

### TC-SA-11-02-023 — Installment tracking: the installments tracked (the paid, the due, the overdue); the tracking is the status
**Type:** Positive
**Covers:** 2.3 → Installment tracking: the installments tracked (the paid, the due, the overdue); Rule: the installments are tracked (the paid, the due, the overdue); the tracking is the status
**Preconditions:** An installment purchase is in progress.
**Steps:**
1. Open the installment tracking view.
2. Verify the installments are tracked: the paid (the ones made), the due (the upcoming), the overdue (the missed).
3. Verify the tracking is the status.
**Expected Result:** The installments are tracked (the paid, the due, the overdue) — the tracking is the status.
**Priority:** Critical

### TC-SA-11-02-024 — Plan definition and installments are audit-logged with the plan, course, and timestamp
**Type:** Positive
**Covers:** 2.3 → Audit logging of the plan definition and the installments; Rule: plan definition and installments are audit-logged with the plan, course, and timestamp
**Preconditions:** Plan definition and installment events have occurred.
**Steps:**
1. Open the audit trail and filter by "installment plan".
2. Verify entries show the plan, the course, and the timestamp.
**Expected Result:** The plan definition and installments are audit-logged with the plan, course, and timestamp.
**Priority:** Critical

### TC-SA-11-02-025 — An overdue installment triggers the notification (the reminder); the access is at risk (the suspension is the consequence)
**Type:** Negative
**Covers:** 2.3 → Rule: an overdue installment triggers the notification (the reminder); the access is at risk (the suspension is the consequence)
**Preconditions:** An installment is overdue (a missed payment).
**Steps:**
1. Let an installment become overdue (miss the due date).
2. Verify the learner is notified (the reminder).
3. Verify the access is at risk (the suspension is the consequence).
**Expected Result:** The overdue installment triggers the notification (the reminder) — the access is at risk (the suspension is the consequence).
**Priority:** Critical

### TC-SA-11-02-026 — A plan adjustment (the installments, the schedule) is recorded (the change, the time); it is auditable
**Type:** Positive
**Covers:** 2.3 → Rule: a plan adjustment (the installments, the schedule) is recorded (the change, the time); it is auditable
**Preconditions:** An installment plan is live.
**Steps:**
1. Adjust the plan (change the installments, the schedule).
2. Verify the adjustment is recorded (the change, the time).
3. Verify the change is auditable.
**Expected Result:** The plan adjustment is recorded (the change, the time) — it is auditable.
**Priority:** High

## 2.4 Course Bundles (Related Courses)

### TC-SA-11-02-027 — Course bundle: the plan for a set of related courses (the courses, the discount, the access duration)
**Type:** Positive
**Covers:** 2.4 → Course bundle: the plan for a set of related courses (the courses, the discount, the access duration); Bundle definition: the bundle defined by the Super Admin (the courses, the discount, the duration)
**Preconditions:** The Super Admin opens the professional subscription plans.
**Steps:**
1. Define the course bundle: the courses (the related courses, the skill path), the discount (the bundle price is lower than the individual), and the access duration.
2. Save the bundle.
3. Verify the bundle is live and a learner can subscribe to it.
**Expected Result:** The course bundle is defined (the courses, the discount, the duration) — the bundle is live and subscribable.
**Priority:** Critical

### TC-SA-11-02-028 — Bundle discount: the bundle price is lower than the individual courses
**Type:** Negative
**Covers:** 2.4 → Bundle discount: the bundle price is lower than the individual courses; Rule: the bundle discount is the price advantage (the bundle is cheaper than the individual); the discount is the incentive
**Preconditions:** A course bundle is defined with a discount.
**Steps:**
1. Compare the bundle price to the sum of the individual courses.
2. Verify the bundle price is lower than the individual courses.
3. Verify the discount is the incentive.
**Expected Result:** The bundle price is lower than the individual courses — the discount is the incentive.
**Priority:** Critical

### TC-SA-11-02-029 — Course set: the courses in the bundle (the related courses, the skill path); it is explicit
**Type:** Positive
**Covers:** 2.4 → Course set: the courses in the bundle (the related courses, the skill path); Rule: the course bundle is for a set of related courses (the skill path); the access is to the bundle's courses; the course set is the related courses; it is explicit
**Preconditions:** A course bundle is defined.
**Steps:**
1. Verify the course set is explicit (the related courses, the skill path).
2. Verify the bundle is for a set of related courses.
3. Verify the access is to the bundle's courses.
**Expected Result:** The course set is explicit — the bundle is for a set of related courses (the skill path); the access is to the bundle's courses.
**Priority:** High

### TC-SA-11-02-030 — Subscription activation: the access granted to the bundle's courses (the content available)
**Type:** Positive
**Covers:** 2.4 → Subscription activation: the access granted to the bundle's courses (the content available); Rule: the subscription activation grants the access (the bundle's courses available)
**Preconditions:** A learner subscribes to a course bundle.
**Steps:**
1. Subscribe to the course bundle.
2. Verify the access is granted to the bundle's courses (the content is available for the duration).
**Expected Result:** The access is granted to the bundle's courses — the content is available for the duration.
**Priority:** Critical

### TC-SA-11-02-031 — Bundle expiry: the access ending at the duration end (the renewal prompt)
**Type:** Edge
**Covers:** 2.4 → Bundle expiry: the access ending at the duration end (the renewal prompt); Rule: the expiry ends it (the renewal prompt)
**Preconditions:** A course bundle subscription is active and the duration is ending.
**Steps:**
1. Wait for the duration end.
2. Verify the access ends at the duration end.
3. Verify the learner is prompted to renew.
**Expected Result:** The access ends at the duration end — the learner is prompted to renew.
**Priority:** Critical

### TC-SA-11-02-032 — Bundle definition and subscriptions are audit-logged with the bundle, courses, and timestamp
**Type:** Positive
**Covers:** 2.4 → Audit logging of the bundle definition and the subscriptions; Rule: bundle definition and subscriptions are audit-logged with the bundle, courses, and timestamp
**Preconditions:** Bundle definition and subscription events have occurred.
**Steps:**
1. Open the audit trail and filter by "course bundle".
2. Verify entries show the bundle, the courses, and the timestamp.
**Expected Result:** The bundle definition and subscriptions are audit-logged with the bundle, courses, and timestamp.
**Priority:** Critical

### TC-SA-11-02-033 — A bundle adjustment (the discount, the duration) is recorded (the change, the time); it is auditable
**Type:** Positive
**Covers:** 2.4 → Rule: a bundle adjustment (the discount, the duration) is recorded (the change, the time); it is auditable
**Preconditions:** A course bundle is live.
**Steps:**
1. Adjust the bundle (change the discount, the duration).
2. Verify the adjustment is recorded (the change, the time).
3. Verify the change is auditable.
**Expected Result:** The bundle adjustment is recorded (the change, the time) — it is auditable.
**Priority:** High
