# 4. Version History — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: version_history.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 Maintain Content Version History | Version creation: a new version recorded when the content changes significantly | TC-SA-10-04-001 |
| 4.1 Maintain Content Version History | Version record: the version's content, the change, the actor, and the timestamp | TC-SA-10-04-002 |
| 4.1 Maintain Content Version History | Version list: the versions of a content item in order | TC-SA-10-04-003 |
| 4.1 Maintain Content Version History | Version detail: a version's specifics (the change, the actor, the time) | TC-SA-10-04-004 |
| 4.1 Maintain Content Version History | Current version: the learners always see the current (latest) version | TC-SA-10-04-005 |
| 4.1 Maintain Content Version History | History retention: the versions retained per the platform's policy | TC-SA-10-04-006 |
| 4.1 Maintain Content Version History | Audit logging of the version creation | TC-SA-10-04-007 |
| 4.1 Maintain Content Version History | Rule: a version is recorded on a significant change; the version captures the change, the actor, and the timestamp | TC-SA-10-04-001, TC-SA-10-04-002 |
| 4.1 Maintain Content Version History | Rule: the version list is in order; the evolution is visible, not a jumble | TC-SA-10-04-003 |
| 4.1 Maintain Content Version History | Rule: the learners always see the current (latest) version; a stale version is not shown | TC-SA-10-04-005 |
| 4.1 Maintain Content Version History | Rule: the history retention is per the platform's policy; older versions are available for the retention period | TC-SA-10-04-006 |
| 4.1 Maintain Content Version History | Rule: a disputed change is traced to its version (the actor, the time, the change); the trace is the answer | TC-SA-10-04-008 |
| 4.1 Maintain Content Version History | Rule: version creation is audit-logged with the content, version, and timestamp | TC-SA-10-04-007 |
| 4.2 Track Changes Across Versions | Version comparison: two versions compared (the change between them) | TC-SA-10-04-009 |
| 4.2 Track Changes Across Versions | Change detail: the specific changes (the content delta, the metadata delta) | TC-SA-10-04-010 |
| 4.2 Track Changes Across Versions | Change attribution: the change attributed (the actor, the time) | TC-SA-10-04-011 |
| 4.2 Track Changes Across Versions | Change review: the change reviewed (the what and the why) | TC-SA-10-04-012 |
| 4.2 Track Changes Across Versions | Change impact: the impact of the change (the learners affected, the context) | TC-SA-10-04-013 |
| 4.2 Track Changes Across Versions | Restore preview: the change a restore would undo (the revert understood) | TC-SA-10-04-014 |
| 4.2 Track Changes Across Versions | Audit logging of the change tracking (where applicable) | TC-SA-10-04-015 |
| 4.2 Track Changes Across Versions | Rule: the version comparison shows the change between two versions; the delta is the content and the metadata | TC-SA-10-04-009, TC-SA-10-04-010 |
| 4.2 Track Changes Across Versions | Rule: the change is attributed (the actor, the time); it is accountable, not anonymous | TC-SA-10-04-011 |
| 4.2 Track Changes Across Versions | Rule: the change impact is reviewed (the learners affected, the context); the impact is understood, not assumed | TC-SA-10-04-013 |
| 4.2 Track Changes Across Versions | Rule: a restore preview shows the change the restore would undo; the revert is a confident act | TC-SA-10-04-014 |
| 4.2 Track Changes Across Versions | Rule: a disputed change is resolved via the review (the what, the why, the attribution); the tracking is the evidence | TC-SA-10-04-012 |
| 4.2 Track Changes Across Versions | Rule: change tracking is audit-logged where applicable | TC-SA-10-04-015 |

## 4.1 Maintain Content Version History

### TC-SA-10-04-001 — Version creation: a new version recorded when the content changes significantly
**Type:** Positive
**Covers:** 4.1 → Version creation: a new version recorded when the content changes significantly; Rule: a version is recorded on a significant change
**Preconditions:** A content item exists with a current version.
**Steps:**
1. Make a significant change to the content (a section rewritten, a new section added).
2. Verify a new version is recorded.
3. Verify the version captures the change.
**Expected Result:** A new version is recorded when the content changes significantly — the version captures the change.
**Priority:** Critical

### TC-SA-10-04-002 — Version record: the version's content, the change, the actor, and the timestamp
**Type:** Positive
**Covers:** 4.1 → Version record: the version's content, the change, the actor, and the timestamp; Rule: the version captures the change, the actor, and the timestamp
**Preconditions:** A new version has been recorded.
**Steps:**
1. Open the version record.
2. Verify it shows the version's content, the change, the actor, and the timestamp.
**Expected Result:** The version record shows the version's content, the change, the actor, and the timestamp.
**Priority:** Critical

### TC-SA-10-04-003 — Version list: the versions of a content item in order; the evolution is visible, not a jumble
**Type:** Positive
**Covers:** 4.1 → Version list: the versions of a content item in order; Rule: the version list is in order; the evolution is visible, not a jumble
**Preconditions:** A content item has multiple versions.
**Steps:**
1. Open the version list for the content item.
2. Verify the versions are shown in order (the evolution is visible).
3. Verify the list is not a jumble.
**Expected Result:** The version list shows the versions in order — the evolution is visible, not a jumble.
**Priority:** High

### TC-SA-10-04-004 — Version detail: a version's specifics (the change, the actor, the time)
**Type:** Positive
**Covers:** 4.1 → Version detail: a version's specifics (the change, the actor, the time)
**Preconditions:** A content item has multiple versions.
**Steps:**
1. Open the detail for a specific version.
2. Verify it shows the version's specifics: the change, the actor, and the time.
**Expected Result:** The version detail shows the version's specifics — the change, the actor, and the time.
**Priority:** High

### TC-SA-10-04-005 — Current version: the learners always see the current (latest) version; a stale version is not shown
**Type:** Negative
**Covers:** 4.1 → Current version: the learners always see the current (latest) version; Rule: the learners always see the current (latest) version; a stale version is not shown
**Preconditions:** A content item has multiple versions and is live.
**Steps:**
1. As a learner, open the content item.
2. Verify the learner sees the current (latest) version.
3. Verify a stale version is not shown.
**Expected Result:** The learner sees the current (latest) version — a stale version is not shown.
**Priority:** Critical

### TC-SA-10-04-006 — History retention: the versions retained per the platform's policy; older versions are available for the retention period
**Type:** Edge
**Covers:** 4.1 → History retention: the versions retained per the platform's policy; Rule: the history retention is per the platform's policy; older versions are available for the retention period
**Preconditions:** A content item has versions older than the retention period.
**Steps:**
1. Verify the versions are retained per the platform's policy.
2. Verify older versions are available for the retention period.
3. Verify versions beyond the retention period are handled per the policy.
**Expected Result:** The versions are retained per the platform's policy — older versions are available for the retention period.
**Priority:** Medium

### TC-SA-10-04-007 — Version creation is audit-logged with the content, the version, and the timestamp
**Type:** Positive
**Covers:** 4.1 → Audit logging of the version creation; Rule: version creation is audit-logged with the content, version, and timestamp
**Preconditions:** Version creation events have occurred.
**Steps:**
1. Open the audit trail and filter by "version creation".
2. Verify entries show the content, the version, and the timestamp.
**Expected Result:** The version creation is audit-logged with the content, version, and timestamp.
**Priority:** Critical

### TC-SA-10-04-008 — A disputed change is traced to its version (the actor, the time, the change); the trace is the answer
**Type:** Positive
**Covers:** 4.1 → Rule: a disputed change is traced to its version (the actor, the time, the change); the trace is the answer
**Preconditions:** A change to a content item is disputed.
**Steps:**
1. Trace the disputed change to its version.
2. Verify the trace shows the actor, the time, and the change.
3. Verify the trace resolves the dispute (the trace is the answer).
**Expected Result:** The disputed change is traced to its version — the actor, the time, and the change are shown; the trace is the answer.
**Priority:** High

## 4.2 Track Changes Across Versions

### TC-SA-10-04-009 — Version comparison: two versions compared (the change between them); the delta is the content and the metadata
**Type:** Positive
**Covers:** 4.2 → Version comparison: two versions compared (the change between them); Rule: the version comparison shows the change between two versions; the delta is the content and the metadata
**Preconditions:** A content item has at least two versions.
**Steps:**
1. Compare two versions of the content item.
2. Verify the comparison shows the change between them.
3. Verify the delta includes the content and the metadata.
**Expected Result:** The version comparison shows the change between the two versions — the delta is the content and the metadata.
**Priority:** High

### TC-SA-10-04-010 — Change detail: the specific changes (the content delta, the metadata delta)
**Type:** Positive
**Covers:** 4.2 → Change detail: the specific changes (the content delta, the metadata delta)
**Preconditions:** Two versions of a content item are being compared.
**Steps:**
1. Open the change detail for the comparison.
2. Verify it shows the specific changes: the content delta and the metadata delta.
**Expected Result:** The change detail shows the specific changes — the content delta and the metadata delta.
**Priority:** High

### TC-SA-10-04-011 — Change attribution: the change attributed (the actor, the time); it is accountable, not anonymous
**Type:** Positive
**Covers:** 4.2 → Change attribution: the change attributed (the actor, the time); Rule: the change is attributed (the actor, the time); it is accountable, not anonymous
**Preconditions:** A change between two versions is being reviewed.
**Steps:**
1. Verify the change is attributed to the actor and the time.
2. Verify the change is accountable (not anonymous).
**Expected Result:** The change is attributed (the actor, the time) — it is accountable, not anonymous.
**Priority:** High

### TC-SA-10-04-012 — Change review: the change reviewed (the what and the why); a disputed change is resolved via the review; the tracking is the evidence
**Type:** Positive
**Covers:** 4.2 → Change review: the change reviewed (the what and the why); Rule: a disputed change is resolved via the review (the what, the why, the attribution); the tracking is the evidence
**Preconditions:** A change between two versions is under review.
**Steps:**
1. Review the change: the what (the specific change) and the why (the reason).
2. For a disputed change, verify the review resolves it (the what, the why, the attribution).
3. Verify the tracking is the evidence.
**Expected Result:** The change is reviewed (the what and the why) — a disputed change is resolved via the review; the tracking is the evidence.
**Priority:** High

### TC-SA-10-04-013 — Change impact: the impact of the change (the learners affected, the context); the impact is understood, not assumed
**Type:** Positive
**Covers:** 4.2 → Change impact: the impact of the change (the learners affected, the context); Rule: the change impact is reviewed (the learners affected, the context); the impact is understood, not assumed
**Preconditions:** A change between two versions is being reviewed.
**Steps:**
1. Review the impact of the change: the learners affected and the context.
2. Verify the impact is understood (not assumed).
**Expected Result:** The change impact is reviewed — the learners affected and the context are shown; the impact is understood, not assumed.
**Priority:** Medium

### TC-SA-10-04-014 — Restore preview: the change a restore would undo (the revert understood); the revert is a confident act
**Type:** Positive
**Covers:** 4.2 → Restore preview: the change a restore would undo (the revert understood); Rule: a restore preview shows the change the restore would undo; the revert is a confident act
**Preconditions:** A content item has multiple versions and a restore is being considered.
**Steps:**
1. Preview the restore to an earlier version.
2. Verify the preview shows the change the restore would undo.
3. Verify the revert is understood (the revert is a confident act).
**Expected Result:** The restore preview shows the change the restore would undo — the revert is a confident act.
**Priority:** High

### TC-SA-10-04-015 — Change tracking is audit-logged where applicable
**Type:** Positive
**Covers:** 4.2 → Audit logging of the change tracking (where applicable); Rule: change tracking is audit-logged where applicable
**Preconditions:** Change tracking events have occurred.
**Steps:**
1. Open the audit trail and filter by "change tracking".
2. Verify entries show the change tracking events where applicable.
**Expected Result:** The change tracking is audit-logged where applicable.
**Priority:** Medium
