# 5. Workflow Configuration — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: workflow_configuration.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 |
|---------|--------------------|----------|
| 5.1 Configure Approval Steps and Reviewers | Approval steps: the stages configured (the review, the approval, the final check) | TC-SA-10-05-001 |
| 5.1 Configure Approval Steps and Reviewers | Step order: the steps in the order the content passes through them | TC-SA-10-05-002 |
| 5.1 Configure Approval Steps and Reviewers | Reviewer assignment: the reviewers assigned to the steps | TC-SA-10-05-003 |
| 5.1 Configure Approval Steps and Reviewers | Step requirements: the requirements per step (the criteria the step checks) | TC-SA-10-05-004 |
| 5.1 Configure Approval Steps and Reviewers | Workflow variants: the workflows per content type/risk (the low-risk vs. the high-risk) | TC-SA-10-05-005 |
| 5.1 Configure Approval Steps and Reviewers | Workflow change: the workflow updated (the steps, the reviewers) | TC-SA-10-05-006 |
| 5.1 Configure Approval Steps and Reviewers | Audit logging of the workflow configuration | TC-SA-10-05-007 |
| 5.1 Configure Approval Steps and Reviewers | Rule: the approval steps are the stages the content passes through; the order is the sequence | TC-SA-10-05-002 |
| 5.1 Configure Approval Steps and Reviewers | Rule: the step requirements are specific (the criteria the step checks); the steps are not vague | TC-SA-10-05-004 |
| 5.1 Configure Approval Steps and Reviewers | Rule: the reviewers are assigned to the steps; the review is a person's act, not an anonymous one | TC-SA-10-05-003 |
| 5.1 Configure Approval Steps and Reviewers | Rule: the workflow variants are per content type/risk (the low-risk vs. the high-risk); the process matches the risk | TC-SA-10-05-005 |
| 5.1 Configure Approval Steps and Reviewers | Rule: a workflow change is recorded (the steps, the reviewers, the time); it is auditable | TC-SA-10-05-006 |
| 5.1 Configure Approval Steps and Reviewers | Rule: workflow configuration is audit-logged with the steps, reviewers, and timestamp | TC-SA-10-05-007 |
| 5.2 Assign Content to Specific Reviewers | Reviewer assignment: the content routed to a specific reviewer | TC-SA-10-05-008 |
| 5.2 Assign Content to Specific Reviewers | Assignment basis: the assignment by the subject, the type, and the expertise | TC-SA-10-05-009 |
| 5.2 Assign Content to Specific Reviewers | Reviewer workload: the reviewer's load (the items assigned) | TC-SA-10-05-010 |
| 5.2 Assign Content to Specific Reviewers | Assignment routing: the content routed to the reviewer's queue | TC-SA-10-05-011 |
| 5.2 Assign Content to Specific Reviewers | Reassignment: the content moved to a different reviewer (where needed) | TC-SA-10-05-012 |
| 5.2 Assign Content to Specific Reviewers | Assignment record: the assignment recorded (the content, the reviewer, the time) | TC-SA-10-05-013 |
| 5.2 Assign Content to Specific Reviewers | Audit logging of the assignments | TC-SA-10-05-014 |
| 5.2 Assign Content to Specific Reviewers | Rule: the content is assigned to a specific reviewer; the review is a person's act, not an anonymous one | TC-SA-10-05-008 |
| 5.2 Assign Content to Specific Reviewers | Rule: the assignment basis is the subject, the type, and the expertise; the reviewer knows the subject | TC-SA-10-05-009 |
| 5.2 Assign Content to Specific Reviewers | Rule: the reviewer workload is visible (the items assigned); the load is distributed, not concentrated | TC-SA-10-05-010 |
| 5.2 Assign Content to Specific Reviewers | Rule: a reassignment is recorded (the content, the new reviewer, the time); the change is auditable | TC-SA-10-05-012 |
| 5.2 Assign Content to Specific Reviewers | Rule: an unassigned item is a gap; it is assigned (not left unassigned) | TC-SA-10-05-015 |
| 5.2 Assign Content to Specific Reviewers | Rule: assignments are audit-logged with the content, reviewer, and timestamp | TC-SA-10-05-014 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status tracking: the status per content item (pending, in review, approved, rejected) | TC-SA-10-05-016 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status visibility: the status visible (the item's state known) | TC-SA-10-05-017 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status transition: the status changed (the transition recorded) | TC-SA-10-05-018 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status history: the status over time (the transitions in order) | TC-SA-10-05-019 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status filter: the items filtered by the status (the pending, the approved, etc.) | TC-SA-10-05-020 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Status notification: the status change notified (the creator informed) | TC-SA-10-05-021 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Audit logging of the status transitions | TC-SA-10-05-022 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: the status is per content item (pending, in review, approved, rejected); the state is known | TC-SA-10-05-016 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: a status transition is recorded (the from, the to, the time); the transition is auditable | TC-SA-10-05-018 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: the status history is in order (the transitions); the item's journey is visible | TC-SA-10-05-019 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: a status change is notified to the creator; they know where their item is | TC-SA-10-05-021 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: a status filter narrows the items (the pending, the rejected); the queue is worked by the status | TC-SA-10-05-020 |
| 5.3 Track Review Status (Pending, Approved, Rejected, In Review) | Rule: status transitions are audit-logged with the content, status, and timestamp | TC-SA-10-05-022 |

## 5.1 Configure Approval Steps and Reviewers

### TC-SA-10-05-001 — Approval steps: the stages configured (the review, the approval, the final check)
**Type:** Positive
**Covers:** 5.1 → Approval steps: the stages configured (the review, the approval, the final check)
**Preconditions:** The Super Admin opens the workflow configuration.
**Steps:**
1. Configure the approval steps: the stages the content passes through (the review, the approval, the final check).
2. Verify the steps are configured.
**Expected Result:** The approval steps are configured — the stages (the review, the approval, the final check) are set.
**Priority:** Critical

### TC-SA-10-05-002 — Step order: the steps in the order the content passes through them; the order is the sequence
**Type:** Positive
**Covers:** 5.1 → Step order: the steps in the order the content passes through them; Rule: the approval steps are the stages the content passes through; the order is the sequence
**Preconditions:** The approval steps are configured.
**Steps:**
1. Set the step order: the sequence the content passes through the steps.
2. Verify the content passes through the steps in the configured order.
**Expected Result:** The steps are in the order the content passes through them — the order is the sequence.
**Priority:** Critical

### TC-SA-10-05-003 — Reviewer assignment: the reviewers assigned to the steps; the review is a person's act, not an anonymous one
**Type:** Positive
**Covers:** 5.1 → Reviewer assignment: the reviewers assigned to the steps; Rule: the reviewers are assigned to the steps; the review is a person's act, not an anonymous one
**Preconditions:** The approval steps are configured.
**Steps:**
1. Assign reviewers to the steps.
2. Verify the reviewers are assigned to the steps.
3. Verify the review is a person's act (not anonymous).
**Expected Result:** The reviewers are assigned to the steps — the review is a person's act, not an anonymous one.
**Priority:** Critical

### TC-SA-10-05-004 — Step requirements: the requirements per step (the criteria the step checks); the steps are not vague
**Type:** Negative
**Covers:** 5.1 → Step requirements: the requirements per step (the criteria the step checks); Rule: the step requirements are specific (the criteria the step checks); the steps are not vague
**Preconditions:** The approval steps are configured.
**Steps:**
1. Set the requirements per step: the specific criteria the step checks (the accuracy, the curriculum alignment, the quality).
2. Verify the step requirements are specific (not vague).
**Expected Result:** The step requirements are specific — the criteria the step checks are defined; the steps are not vague.
**Priority:** High

### TC-SA-10-05-005 — Workflow variants: the workflows per content type/risk (the low-risk vs. the high-risk); the process matches the risk
**Type:** Positive
**Covers:** 5.1 → Workflow variants: the workflows per content type/risk (the low-risk vs. the high-risk); Rule: the workflow variants are per content type/risk (the low-risk vs. the high-risk); the process matches the risk
**Preconditions:** The workflow configuration is open.
**Steps:**
1. Configure workflow variants per content type/risk (the low-risk vs. the high-risk).
2. Verify the low-risk content follows the lighter workflow.
3. Verify the high-risk content follows the heavier workflow (the process matches the risk).
**Expected Result:** The workflow variants are per content type/risk — the process matches the risk.
**Priority:** High

### TC-SA-10-05-006 — Workflow change: the workflow updated (the steps, the reviewers); a workflow change is recorded; it is auditable
**Type:** Positive
**Covers:** 5.1 → Workflow change: the workflow updated (the steps, the reviewers); Rule: a workflow change is recorded (the steps, the reviewers, the time); it is auditable
**Preconditions:** A workflow is configured.
**Steps:**
1. Update the workflow (change the steps, the reviewers).
2. Verify the workflow change is recorded (the steps, the reviewers, the time).
3. Verify the change is auditable.
**Expected Result:** The workflow change is recorded (the steps, the reviewers, the time) — it is auditable.
**Priority:** High

### TC-SA-10-05-007 — Workflow configuration is audit-logged with the steps, the reviewers, and the timestamp
**Type:** Positive
**Covers:** 5.1 → Audit logging of the workflow configuration; Rule: workflow configuration is audit-logged with the steps, reviewers, and timestamp
**Preconditions:** Workflow configuration events have occurred.
**Steps:**
1. Open the audit trail and filter by "workflow configuration".
2. Verify entries show the steps, the reviewers, and the timestamp.
**Expected Result:** The workflow configuration is audit-logged with the steps, reviewers, and timestamp.
**Priority:** Critical

## 5.2 Assign Content to Specific Reviewers

### TC-SA-10-05-008 — Reviewer assignment: the content routed to a specific reviewer; the review is a person's act, not an anonymous one
**Type:** Positive
**Covers:** 5.2 → Reviewer assignment: the content routed to a specific reviewer; Rule: the content is assigned to a specific reviewer; the review is a person's act, not an anonymous one
**Preconditions:** A content item is in the review queue.
**Steps:**
1. Assign the content item to a specific reviewer.
2. Verify the content is routed to the specific reviewer.
3. Verify the review is a person's act (not anonymous).
**Expected Result:** The content is assigned to a specific reviewer — the review is a person's act, not an anonymous one.
**Priority:** Critical

### TC-SA-10-05-009 — Assignment basis: the assignment by the subject, the type, and the expertise; the reviewer knows the subject
**Type:** Positive
**Covers:** 5.2 → Assignment basis: the assignment by the subject, the type, and the expertise; Rule: the assignment basis is the subject, the type, and the expertise; the reviewer knows the subject
**Preconditions:** A content item is being assigned.
**Steps:**
1. Assign the content based on the subject, the type, and the reviewer's expertise.
2. Verify the assignment basis is the subject, the type, and the expertise.
3. Verify the reviewer knows the subject.
**Expected Result:** The assignment is by the subject, the type, and the expertise — the reviewer knows the subject.
**Priority:** High

### TC-SA-10-05-010 — Reviewer workload: the reviewer's load (the items assigned); the load is distributed, not concentrated
**Type:** Positive
**Covers:** 5.2 → Reviewer workload: the reviewer's load (the items assigned); Rule: the reviewer workload is visible (the items assigned); the load is distributed, not concentrated
**Preconditions:** Multiple content items are assigned to reviewers.
**Steps:**
1. Open the reviewer workload view.
2. Verify the reviewer's load is visible (the items assigned).
3. Verify the load is distributed (not concentrated on one reviewer).
**Expected Result:** The reviewer workload is visible (the items assigned) — the load is distributed, not concentrated.
**Priority:** High

### TC-SA-10-05-011 — Assignment routing: the content routed to the reviewer's queue
**Type:** Positive
**Covers:** 5.2 → Assignment routing: the content routed to the reviewer's queue
**Preconditions:** A content item is assigned to a reviewer.
**Steps:**
1. Verify the content is routed to the reviewer's queue.
2. As the reviewer, verify the item appears in their queue.
**Expected Result:** The content is routed to the reviewer's queue — the reviewer sees it in their queue.
**Priority:** High

### TC-SA-10-05-012 — Reassignment: the content moved to a different reviewer (where needed); a reassignment is recorded; the change is auditable
**Type:** Positive
**Covers:** 5.2 → Reassignment: the content moved to a different reviewer (where needed); Rule: a reassignment is recorded (the content, the new reviewer, the time); the change is auditable
**Preconditions:** A content item is assigned to a reviewer.
**Steps:**
1. Reassign the content item to a different reviewer.
2. Verify the content is moved to the new reviewer's queue.
3. Verify the reassignment is recorded (the content, the new reviewer, the time).
4. Verify the change is auditable.
**Expected Result:** The content is moved to the different reviewer — the reassignment is recorded (the content, the new reviewer, the time); the change is auditable.
**Priority:** High

### TC-SA-10-05-013 — Assignment record: the assignment recorded (the content, the reviewer, the time)
**Type:** Positive
**Covers:** 5.2 → Assignment record: the assignment recorded (the content, the reviewer, the time)
**Preconditions:** A content item has been assigned to a reviewer.
**Steps:**
1. Open the assignment record.
2. Verify it shows the content, the reviewer, and the time.
**Expected Result:** The assignment is recorded — the content, the reviewer, and the time are shown.
**Priority:** High

### TC-SA-10-05-014 — Assignments are audit-logged with the content, the reviewer, and the timestamp
**Type:** Positive
**Covers:** 5.2 → Audit logging of the assignments; Rule: assignments are audit-logged with the content, reviewer, and timestamp
**Preconditions:** Assignment events have occurred.
**Steps:**
1. Open the audit trail and filter by "reviewer assignment".
2. Verify entries show the content, the reviewer, and the timestamp.
**Expected Result:** The assignments are audit-logged with the content, reviewer, and timestamp.
**Priority:** Critical

### TC-SA-10-05-015 — An unassigned item is a gap; it is assigned (not left unassigned)
**Type:** Negative
**Covers:** 5.2 → Rule: an unassigned item is a gap; it is assigned (not left unassigned)
**Preconditions:** A content item is in the review queue with no reviewer assigned.
**Steps:**
1. Verify the unassigned item is flagged as a gap.
2. Assign the item to a reviewer.
3. Verify the item is not left unassigned.
**Expected Result:** The unassigned item is a gap — it is assigned (not left unassigned).
**Priority:** High

## 5.3 Track Review Status (Pending, Approved, Rejected, In Review)

### TC-SA-10-05-016 — Status tracking: the status per content item (pending, in review, approved, rejected); the state is known
**Type:** Positive
**Covers:** 5.3 → Status tracking: the status per content item (pending, in review, approved, rejected); Rule: the status is per content item (pending, in review, approved, rejected); the state is known
**Preconditions:** Multiple content items are in various review states.
**Steps:**
1. Open the review status view.
2. Verify the status is shown per content item (pending, in review, approved, rejected).
3. Verify the state is known for each item.
**Expected Result:** The status is tracked per content item (pending, in review, approved, rejected) — the state is known.
**Priority:** Critical

### TC-SA-10-05-017 — Status visibility: the status visible (the item's state known)
**Type:** Positive
**Covers:** 5.3 → Status visibility: the status visible (the item's state known)
**Preconditions:** A content item is in review.
**Steps:**
1. Open the content item's detail.
2. Verify the status is visible (the item's state is known).
**Expected Result:** The status is visible — the item's state is known.
**Priority:** High

### TC-SA-10-05-018 — Status transition: the status changed (the transition recorded); a status transition is recorded (the from, the to, the time); the transition is auditable
**Type:** Positive
**Covers:** 5.3 → Status transition: the status changed (the transition recorded); Rule: a status transition is recorded (the from, the to, the time); the transition is auditable
**Preconditions:** A content item is in the "pending" status.
**Steps:**
1. Transition the item to "in review".
2. Verify the status transition is recorded (the from, the to, the time).
3. Verify the transition is auditable.
**Expected Result:** The status transition is recorded (the from, the to, the time) — the transition is auditable.
**Priority:** Critical

### TC-SA-10-05-019 — Status history: the status over time (the transitions in order); the item's journey is visible
**Type:** Positive
**Covers:** 5.3 → Status history: the status over time (the transitions in order); Rule: the status history is in order (the transitions); the item's journey is visible
**Preconditions:** A content item has gone through multiple status transitions.
**Steps:**
1. Open the status history for the content item.
2. Verify the status over time is shown (the transitions in order).
3. Verify the item's journey is visible.
**Expected Result:** The status history is in order (the transitions) — the item's journey is visible.
**Priority:** High

### TC-SA-10-05-020 — Status filter: the items filtered by the status (the pending, the approved, etc.); the queue is worked by the status
**Type:** Positive
**Covers:** 5.3 → Status filter: the items filtered by the status (the pending, the approved, etc.); Rule: a status filter narrows the items (the pending, the rejected); the queue is worked by the status
**Preconditions:** Multiple content items are in various statuses.
**Steps:**
1. Filter the items by status (the pending, the approved, the rejected).
2. Verify the filter narrows the items to the selected status.
3. Verify the queue can be worked by the status.
**Expected Result:** The items are filtered by the status — the queue is worked by the status.
**Priority:** High

### TC-SA-10-05-021 — Status notification: the status change notified (the creator informed); they know where their item is
**Type:** Positive
**Covers:** 5.3 → Status notification: the status change notified (the creator informed); Rule: a status change is notified to the creator; they know where their item is
**Preconditions:** A content item's status is changed.
**Steps:**
1. Change the content item's status.
2. Verify the status change is notified to the creator.
3. Verify the creator knows where their item is.
**Expected Result:** The status change is notified to the creator — they know where their item is.
**Priority:** High

### TC-SA-10-05-022 — Status transitions are audit-logged with the content, the status, and the timestamp
**Type:** Positive
**Covers:** 5.3 → Audit logging of the status transitions; Rule: status transitions are audit-logged with the content, status, and timestamp
**Preconditions:** Status transition events have occurred.
**Steps:**
1. Open the audit trail and filter by "status transition".
2. Verify entries show the content, the status, and the timestamp.
**Expected Result:** The status transitions are audit-logged with the content, status, and timestamp.
**Priority:** Critical
