# 2. Content Integration — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: content_integration.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 |
|---------|--------------------|----------|
| 2.1 Flashcard SRS Assignment | SRS-eligible flashcard set designation | TC-SA-SRS-4-001 |
| 2.1 Flashcard SRS Assignment | Assignment trigger (on completion, on new concept) | TC-SA-SRS-4-002 |
| 2.1 Flashcard SRS Assignment | Per-student daily review load and queue ordering | TC-SA-SRS-4-003 |
| 2.1 Flashcard SRS Assignment | Bulk assignment to cohorts | TC-SA-SRS-4-004 |
| 2.1 Flashcard SRS Assignment | Rule: non-eligible set never scheduled | TC-SA-SRS-4-005 |
| 2.1 Flashcard SRS Assignment | Rule: daily load caps cards; excess carries over | TC-SA-SRS-4-006 |
| 2.1 Flashcard SRS Assignment | Audit logging of flashcard SRS assignment | TC-SA-SRS-4-007 |
| 2.2 Practice Quiz Resurfacing Rules | SRS-eligible quiz question designation | TC-SA-SRS-5-001 |
| 2.2 Practice Quiz Resurfacing Rules | Resurfacing interval and trigger (on error, on schedule) | TC-SA-SRS-5-002 |
| 2.2 Practice Quiz Resurfacing Rules | Error-weighted resurfacing | TC-SA-SRS-5-003 |
| 2.2 Practice Quiz Resurfacing Rules | Resurfacing cap per question per period | TC-SA-SRS-5-004 |
| 2.2 Practice Quiz Resurfacing Rules | Rule: error-weighting never below interval floor | TC-SA-SRS-5-005 |
| 2.2 Practice Quiz Resurfacing Rules | Rule: cap prevents single-question domination | TC-SA-SRS-5-006 |
| 2.2 Practice Quiz Resurfacing Rules | Audit logging of quiz resurfacing rules | TC-SA-SRS-5-007 |
| 2.3 Video Revision Reminder Scheduling | SRS-eligible video designation and reminder interval | TC-SA-SRS-6-001 |
| 2.3 Video Revision Reminder Scheduling | Reminder delivery channels (in-app, push) | TC-SA-SRS-6-002 |
| 2.3 Video Revision Reminder Scheduling | Reminder content (re-watch prompt, key-concept recap) | TC-SA-SRS-6-003 |
| 2.3 Video Revision Reminder Scheduling | Reminder cap per day | TC-SA-SRS-6-004 |
| 2.3 Video Revision Reminder Scheduling | Rule: no reminder if already re-watched in interval | TC-SA-SRS-6-005 |
| 2.3 Video Revision Reminder Scheduling | Rule: excess reminders deferred to next day | TC-SA-SRS-6-006 |
| 2.3 Video Revision Reminder Scheduling | Audit logging of video revision scheduling | TC-SA-SRS-6-007 |
| 2.4 Key Concept Reinforcement Mapping | SRS-tracked concept designation and content mapping | TC-SA-SRS-7-001 |
| 2.4 Key Concept Reinforcement Mapping | Concept-level mastery target | TC-SA-SRS-7-002 |
| 2.4 Key Concept Reinforcement Mapping | Concept dependency ordering | TC-SA-SRS-7-003 |
| 2.4 Key Concept Reinforcement Mapping | Reinforcement priority (weak concepts first) | TC-SA-SRS-7-004 |
| 2.4 Key Concept Reinforcement Mapping | Rule: no mapped content → not SRS-tracked | TC-SA-SRS-7-005 |
| 2.4 Key Concept Reinforcement Mapping | Rule: prerequisite reinforced before dependent | TC-SA-SRS-7-006 |
| 2.4 Key Concept Reinforcement Mapping | Audit logging of concept reinforcement mapping | TC-SA-SRS-7-007 |

## 2.1 Flashcard SRS Assignment

### TC-SA-SRS-4-001 — SRS-eligible flashcard set designation
**Type:** Positive
**Covers:** 2.1 → Eligible set designation
**Preconditions:** A Super Admin account is active; flashcard sets exist.
**Steps:**
1. As a Super Admin, open SRS Management → Content Integration → Flashcards and designate which flashcard sets are SRS-eligible.
2. Verify the eligible sets are marked and eligible for SRS scheduling.
**Expected Result:** SRS-eligible flashcard set designation — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-4-002 — Assignment trigger (on completion, on new concept)
**Type:** Positive
**Covers:** 2.1 → Assignment trigger
**Preconditions:** SRS-eligible flashcard sets are designated.
**Steps:**
1. Set the assignment trigger to on-set-completion and verify cards enter the SRS on completion.
2. Set the trigger to on-new-concept-introduction and verify cards enter the SRS on introduction.
**Expected Result:** Assignment trigger — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-4-003 — Per-student daily review load and queue ordering
**Type:** Positive
**Covers:** 2.1 → Daily review load and queue ordering
**Preconditions:** Flashcards are assigned to a student.
**Steps:**
1. Set the per-student daily review load and the review queue ordering (due-first, then priority).
2. Verify the student's daily queue respects the load and ordering.
**Expected Result:** Per-student daily review load and queue ordering — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-4-004 — Bulk assignment to cohorts
**Type:** Positive
**Covers:** 2.1 → Bulk assignment
**Preconditions:** SRS-eligible flashcard sets and student cohorts exist.
**Steps:**
1. Bulk-assign eligible sets to a cohort.
2. Verify every student in the cohort receives the assignment.
**Expected Result:** Bulk assignment to cohorts — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-4-005 — Rule: non-eligible set never scheduled
**Type:** Negative
**Covers:** 2.1 → Rule: eligibility enforcement
**Preconditions:** A flashcard set is not SRS-eligible.
**Steps:**
1. Complete the non-eligible set as a student.
2. Verify its cards are never scheduled into the SRS.
**Expected Result:** A non-eligible flashcard set is never scheduled into the SRS — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-4-006 — Rule: daily load caps cards; excess carries over
**Type:** Edge
**Covers:** 2.1 → Rule: daily load cap
**Preconditions:** A student has more due cards than the daily review load.
**Steps:**
1. Present the student's review queue for the day.
2. Verify the queue is capped at the daily load and the excess carries to the next day.
**Expected Result:** The daily review load caps the number of cards per day; excess carries to the next day — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-4-007 — Audit logging of flashcard SRS assignment
**Type:** Positive
**Covers:** 2.1 → Audit logging
**Preconditions:** Flashcard SRS assignment changes have been made.
**Steps:**
1. Open the audit trail and filter by flashcard SRS assignment.
2. Verify entries show the setting, the change, and the timestamp.
**Expected Result:** Audit logging of flashcard SRS assignment — delivered exactly as documented.
**Priority:** Critical

## 2.2 Practice Quiz Resurfacing Rules

### TC-SA-SRS-5-001 — SRS-eligible quiz question designation
**Type:** Positive
**Covers:** 2.2 → Eligible question designation
**Preconditions:** A Super Admin is configuring quiz resurfacing.
**Steps:**
1. Designate which quiz questions are SRS-eligible.
2. Verify the eligible questions are marked for resurfacing.
**Expected Result:** SRS-eligible quiz question designation — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-5-002 — Resurfacing interval and trigger (on error, on schedule)
**Type:** Positive
**Covers:** 2.2 → Resurfacing interval and trigger
**Preconditions:** SRS-eligible quiz questions are designated.
**Steps:**
1. Set the resurfacing interval and the trigger to on-error and verify a missed question resurfaces.
2. Set the trigger to on-schedule and verify questions resurface per the interval.
**Expected Result:** Resurfacing interval and trigger — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-5-003 — Error-weighted resurfacing
**Type:** Positive
**Covers:** 2.2 → Error-weighted resurfacing
**Preconditions:** Error-weighted resurfacing is enabled.
**Steps:**
1. Record a question frequently missed by a student.
2. Verify the question resurfaces sooner than a correctly-answered question.
**Expected Result:** Error-weighted resurfacing — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-5-004 — Resurfacing cap per question per period
**Type:** Positive
**Covers:** 2.2 → Resurfacing cap
**Preconditions:** A resurfacing cap is set.
**Steps:**
1. Set the resurfacing cap (max resurfaces per question per period).
2. Verify a question does not resurface beyond the cap in the period.
**Expected Result:** Resurfacing cap — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-5-005 — Rule: error-weighting never below interval floor
**Type:** Negative
**Covers:** 2.2 → Rule: floor enforcement
**Preconditions:** A question is frequently missed; the interval floor is set.
**Steps:**
1. Apply error-weighted resurfacing to the frequently-missed question.
2. Verify its resurfacing interval never falls below the interval floor.
**Expected Result:** Error-weighted resurfacing never shortens the interval below the interval floor — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-5-006 — Rule: cap prevents single-question domination
**Type:** Negative
**Covers:** 2.2 → Rule: cap enforcement
**Preconditions:** A single question would otherwise dominate a student's review load.
**Steps:**
1. Simulate a student whose review load is dominated by one question.
2. Verify the resurfacing cap limits that question's share of the load.
**Expected Result:** The resurfacing cap prevents a single question from dominating a student's review load — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-5-007 — Audit logging of quiz resurfacing rules
**Type:** Positive
**Covers:** 2.2 → Audit logging
**Preconditions:** Quiz resurfacing rule changes have been made.
**Steps:**
1. Open the audit trail and filter by quiz resurfacing rules.
2. Verify entries show the rule, the change, and the timestamp.
**Expected Result:** Audit logging of quiz resurfacing rules — delivered exactly as documented.
**Priority:** Critical

## 2.3 Video Revision Reminder Scheduling

### TC-SA-SRS-6-001 — SRS-eligible video designation and reminder interval
**Type:** Positive
**Covers:** 2.3 → Eligible video designation and interval
**Preconditions:** A Super Admin is configuring video revision reminders.
**Steps:**
1. Designate which video lessons are SRS-eligible and set the revision reminder interval.
2. Verify eligible videos are scheduled for reminders per the interval.
**Expected Result:** SRS-eligible video designation and reminder interval — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-6-002 — Reminder delivery channels (in-app, push)
**Type:** Positive
**Covers:** 2.3 → Delivery channels
**Preconditions:** Video revision reminders are scheduled.
**Steps:**
1. Set the delivery channels to in-app and push notification.
2. Trigger a reminder and verify it is delivered on the configured channels.
**Expected Result:** Reminder delivery channels — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-6-003 — Reminder content (re-watch prompt, key-concept recap)
**Type:** Positive
**Covers:** 2.3 → Reminder content
**Preconditions:** Video revision reminders are scheduled.
**Steps:**
1. Configure the reminder content to a re-watch prompt and verify the reminder shows it.
2. Configure it to a key-concept recap and verify the reminder shows the recap.
**Expected Result:** Reminder content — delivered exactly as documented.
**Priority:** Medium

### TC-SA-SRS-6-004 — Reminder cap per day
**Type:** Positive
**Covers:** 2.3 → Reminder cap
**Preconditions:** A reminder cap per day is set.
**Steps:**
1. Set the reminder cap (max video reminders per day).
2. Verify a student receives no more than the cap per day.
**Expected Result:** Reminder cap — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-6-005 — Rule: no reminder if already re-watched in interval
**Type:** Negative
**Covers:** 2.3 → Rule: re-watch suppression
**Preconditions:** A student re-watched a video within the current interval.
**Steps:**
1. Let the reminder due time arrive.
2. Verify no reminder is delivered for the already re-watched video.
**Expected Result:** A reminder is delivered only if the student has not already re-watched the video in the interval — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-6-006 — Rule: excess reminders deferred to next day
**Type:** Edge
**Covers:** 2.3 → Rule: cap deferral
**Preconditions:** A student has more due video reminders than the daily cap.
**Steps:**
1. Let the due reminders arrive.
2. Verify the cap is applied and the excess reminders are deferred to the next day.
**Expected Result:** Excess reminders are deferred to the next day — delivered exactly as documented.
**Priority:** Medium

### TC-SA-SRS-6-007 — Audit logging of video revision scheduling
**Type:** Positive
**Covers:** 2.3 → Audit logging
**Preconditions:** Video revision scheduling changes have been made.
**Steps:**
1. Open the audit trail and filter by video revision scheduling.
2. Verify entries show the setting, the change, and the timestamp.
**Expected Result:** Audit logging of video revision scheduling — delivered exactly as documented.
**Priority:** Critical

## 2.4 Key Concept Reinforcement Mapping

### TC-SA-SRS-7-001 — SRS-tracked concept designation and content mapping
**Type:** Positive
**Covers:** 2.4 → Concept designation and mapping
**Preconditions:** A Super Admin is configuring concept reinforcement.
**Steps:**
1. Designate which concepts are SRS-tracked and map the reinforcement content per concept (flashcards, quiz questions, videos).
2. Verify the mapping is saved and drives concept-level reinforcement.
**Expected Result:** SRS-tracked concept designation and content mapping — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-7-002 — Concept-level mastery target
**Type:** Positive
**Covers:** 2.4 → Mastery target
**Preconditions:** Concepts are SRS-tracked.
**Steps:**
1. Set the concept-level mastery target (recall threshold to mark mastered).
2. Verify a concept is marked mastered when its recall rate meets the target.
**Expected Result:** Concept-level mastery target — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-7-003 — Concept dependency ordering
**Type:** Positive
**Covers:** 2.4 → Dependency ordering
**Preconditions:** Concepts with prerequisite relationships are SRS-tracked.
**Steps:**
1. Define the concept dependency ordering (prerequisite concepts reinforced first).
2. Verify the reinforcement queue surfaces prerequisites before dependents.
**Expected Result:** Concept dependency ordering — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-7-004 — Reinforcement priority (weak concepts first)
**Type:** Positive
**Covers:** 2.4 → Reinforcement priority
**Preconditions:** Some concepts are below the mastery target.
**Steps:**
1. Enable the reinforcement priority (weak concepts reinforced first).
2. Verify the queue surfaces weak concepts (below the mastery target) first.
**Expected Result:** Reinforcement priority — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-7-005 — Rule: no mapped content → not SRS-tracked
**Type:** Negative
**Covers:** 2.4 → Rule: no orphan concepts
**Preconditions:** A concept is designated SRS-tracked with no mapped reinforcement content.
**Steps:**
1. Attempt to save the concept with no mapped content.
2. Verify the concept is not SRS-tracked (no orphan concepts).
**Expected Result:** A concept with no mapped reinforcement content is not SRS-tracked — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-7-006 — Rule: prerequisite reinforced before dependent
**Type:** Negative
**Covers:** 2.4 → Rule: dependency enforcement
**Preconditions:** A dependent concept is due before its prerequisite.
**Steps:**
1. Present the reinforcement queue.
2. Verify the prerequisite concept is reinforced before its dependent concept.
**Expected Result:** A prerequisite concept is reinforced before its dependent concept in the queue — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-7-007 — Audit logging of concept reinforcement mapping
**Type:** Positive
**Covers:** 2.4 → Audit logging
**Preconditions:** Concept reinforcement mapping changes have been made.
**Steps:**
1. Open the audit trail and filter by concept reinforcement mapping.
2. Verify entries show the mapping, the change, and the timestamp.
**Expected Result:** Audit logging of concept reinforcement mapping — delivered exactly as documented.
**Priority:** Critical
