# 3. Rejection & Flagging — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: rejection_flagging.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 |
|---------|--------------------|----------|
| 3.1 Reject Content with Reasons | Content rejection: the content rejected (not approved) | TC-SA-10-03-001 |
| 3.1 Reject Content with Reasons | Rejection reasons: the specific reasons recorded (the issues) | TC-SA-10-03-002 |
| 3.1 Reject Content with Reasons | Reason specificity: the reasons are specific (the issue, not a vague "rejected") | TC-SA-10-03-003 |
| 3.1 Reject Content with Reasons | Creator notification: the creator informed of the rejection and the reasons | TC-SA-10-03-004 |
| 3.1 Reject Content with Reasons | Resubmission: the creator can fix and resubmit (the rejection is not a dead end) | TC-SA-10-03-005 |
| 3.1 Reject Content with Reasons | Rejection record: the rejection recorded (the reviewer, the reasons, the time) | TC-SA-10-03-006 |
| 3.1 Reject Content with Reasons | Audit logging of the rejections | TC-SA-10-03-007 |
| 3.1 Reject Content with Reasons | Rule: a rejection is a definitive outcome (the content is not approved); it is distinct from a flag (a marker for further action) | TC-SA-10-03-008 |
| 3.1 Reject Content with Reasons | Rule: the reasons are specific (the issue, not a vague "rejected"); the rejection is actionable | TC-SA-10-03-003 |
| 3.1 Reject Content with Reasons | Rule: the creator is notified of the rejection and the reasons; they are not left guessing | TC-SA-10-03-004 |
| 3.1 Reject Content with Reasons | Rule: a resubmission is allowed (the fix and the re-review); the rejection is not a dead end | TC-SA-10-03-005 |
| 3.1 Reject Content with Reasons | Rule: the rejection is recorded (the reviewer, the reasons, the time); it is auditable | TC-SA-10-03-006 |
| 3.1 Reject Content with Reasons | Rule: rejections are audit-logged with the content, reviewer, reasons, and timestamp | TC-SA-10-03-007 |
| 3.2 Flag Inappropriate or Incorrect Content | Content flagging: the content marked with a flag (the issue identified) | TC-SA-10-03-009 |
| 3.2 Flag Inappropriate or Incorrect Content | Flag types: the flag categories (inappropriate, incorrect, outdated, other) | TC-SA-10-03-010 |
| 3.2 Flag Inappropriate or Incorrect Content | Flag on live content: a flag applied to content that is already live | TC-SA-10-03-011 |
| 3.2 Flag Inappropriate or Incorrect Content | Flag action: the action the flag triggers (a review, a takedown, a correction) | TC-SA-10-03-012 |
| 3.2 Flag Inappropriate or Incorrect Content | Flag resolution: the flag resolved (the issue addressed, the flag cleared) | TC-SA-10-03-013 |
| 3.2 Flag Inappropriate or Incorrect Content | Flag record: the flag recorded (the flagger, the type, the time) | TC-SA-10-03-014 |
| 3.2 Flag Inappropriate or Incorrect Content | Audit logging of the flags | TC-SA-10-03-015 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: a flag is a marker (the issue identified); it is distinct from a rejection (a definitive outcome) | TC-SA-10-03-009 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: a flag can be applied to live content (it is not only for pending content); a live issue is caught | TC-SA-10-03-011 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: the flag type is specific (the category); the action is per the type (the review, the takedown, the correction) | TC-SA-10-03-012 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: a flag is resolved (the issue addressed, the flag cleared); it is not left open indefinitely | TC-SA-10-03-013 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: the flag is recorded (the flagger, the type, the time); it is auditable | TC-SA-10-03-014 |
| 3.2 Flag Inappropriate or Incorrect Content | Rule: flags are audit-logged with the content, flagger, type, and timestamp | TC-SA-10-03-015 |
| 3.3 Provide Feedback to Content Creators | Creator feedback: the feedback given to the creator on their content | TC-SA-10-03-016 |
| 3.3 Provide Feedback to Content Creators | Feedback content: the issues, the suggestions, and the what-to-fix | TC-SA-10-03-017 |
| 3.3 Provide Feedback to Content Creators | Feedback delivery: the feedback delivered to the creator (the notification, the message) | TC-SA-10-03-018 |
| 3.3 Provide Feedback to Content Creators | Feedback specificity: the feedback is specific (the issue, the fix, not a vague note) | TC-SA-10-03-019 |
| 3.3 Provide Feedback to Content Creators | Feedback history: the feedback per creator (the pattern over time) | TC-SA-10-03-020 |
| 3.3 Provide Feedback to Content Creators | Creator improvement: the creator's work improving over the feedback | TC-SA-10-03-021 |
| 3.3 Provide Feedback to Content Creators | Audit logging of the feedback | TC-SA-10-03-022 |
| 3.3 Provide Feedback to Content Creators | Rule: the feedback is given to the creator on their content; it is the communication channel for the rejection/flag | TC-SA-10-03-016 |
| 3.3 Provide Feedback to Content Creators | Rule: the feedback is specific (the issue, the fix, the suggestion); it is actionable, not a vague note | TC-SA-10-03-019 |
| 3.3 Provide Feedback to Content Creators | Rule: the feedback is delivered to the creator (the notification, the message); they receive it with the context | TC-SA-10-03-018 |
| 3.3 Provide Feedback to Content Creators | Rule: the feedback history is per creator (the pattern over time); the creator's development is visible | TC-SA-10-03-020 |
| 3.3 Provide Feedback to Content Creators | Rule: a recurring issue gets targeted feedback (the specific guidance); the root cause is addressed | TC-SA-10-03-023 |
| 3.3 Provide Feedback to Content Creators | Rule: feedback is audit-logged with the content, creator, feedback, and timestamp | TC-SA-10-03-022 |

## 3.1 Reject Content with Reasons

### TC-SA-10-03-001 — Content rejection: the content rejected (not approved)
**Type:** Positive
**Covers:** 3.1 → Content rejection: the content rejected (not approved)
**Preconditions:** A content item in review does not meet the criteria.
**Steps:**
1. Reject the content item.
2. Verify the content is rejected (not approved).
**Expected Result:** The content is rejected — it is not approved.
**Priority:** Critical

### TC-SA-10-03-002 — Rejection reasons: the specific reasons recorded (the issues)
**Type:** Positive
**Covers:** 3.1 → Rejection reasons: the specific reasons recorded (the issues)
**Preconditions:** A content item is being rejected.
**Steps:**
1. Record the specific reasons for the rejection: the issues (the wrong answer, the unclear section, the misalignment).
2. Verify the reasons are recorded.
**Expected Result:** The specific reasons are recorded — the issues are documented.
**Priority:** Critical

### TC-SA-10-03-003 — Reason specificity: the reasons are specific (the issue, not a vague "rejected"); the rejection is actionable
**Type:** Negative
**Covers:** 3.1 → Reason specificity: the reasons are specific (the issue, not a vague "rejected"); Rule: the reasons are specific (the issue, not a vague "rejected"); the rejection is actionable
**Preconditions:** A content item is being rejected.
**Steps:**
1. Attempt to reject the content with a vague reason ("rejected").
2. Verify the system requires specific reasons (the issue, not a vague "rejected").
3. Verify the rejection is actionable (the creator knows what to fix).
**Expected Result:** The reasons are specific (the issue, not a vague "rejected") — the rejection is actionable.
**Priority:** Critical

### TC-SA-10-03-004 — Creator notification: the creator informed of the rejection and the reasons; they are not left guessing
**Type:** Positive
**Covers:** 3.1 → Creator notification: the creator informed of the rejection and the reasons; Rule: the creator is notified of the rejection and the reasons; they are not left guessing
**Preconditions:** A content item has been rejected with reasons.
**Steps:**
1. Verify the creator is notified of the rejection.
2. Verify the notification includes the reasons.
3. Verify the creator is not left guessing (they know what to fix).
**Expected Result:** The creator is notified of the rejection and the reasons — they are not left guessing.
**Priority:** Critical

### TC-SA-10-03-005 — Resubmission: the creator can fix and resubmit (the rejection is not a dead end); the rejection is not a dead end
**Type:** Positive
**Covers:** 3.1 → Resubmission: the creator can fix and resubmit (the rejection is not a dead end); Rule: a resubmission is allowed (the fix and the re-review); the rejection is not a dead end
**Preconditions:** A content item has been rejected with reasons.
**Steps:**
1. As the creator, fix the issues and resubmit the content.
2. Verify the resubmission is allowed (the content re-enters the review queue).
3. Verify the reviewer re-reviews (the fix is verified).
**Expected Result:** The creator can fix and resubmit — the rejection is not a dead end.
**Priority:** Critical

### TC-SA-10-03-006 — Rejection record: the rejection recorded (the reviewer, the reasons, the time); it is auditable
**Type:** Positive
**Covers:** 3.1 → Rejection record: the rejection recorded (the reviewer, the reasons, the time); Rule: the rejection is recorded (the reviewer, the reasons, the time); it is auditable
**Preconditions:** A content item has been rejected.
**Steps:**
1. Open the rejection record.
2. Verify it shows the reviewer, the reasons, and the time.
3. Verify the rejection is auditable.
**Expected Result:** The rejection is recorded (the reviewer, the reasons, the time) — it is auditable.
**Priority:** Critical

### TC-SA-10-03-007 — Rejections are audit-logged with the content, the reviewer, the reasons, and the timestamp
**Type:** Positive
**Covers:** 3.1 → Audit logging of the rejections; Rule: rejections are audit-logged with the content, reviewer, reasons, and timestamp
**Preconditions:** Rejection events have occurred.
**Steps:**
1. Open the audit trail and filter by "content rejection".
2. Verify entries show the content, the reviewer, the reasons, and the timestamp.
**Expected Result:** The rejections are audit-logged with the content, reviewer, reasons, and timestamp.
**Priority:** Critical

### TC-SA-10-03-008 — A rejection is a definitive outcome (the content is not approved); it is distinct from a flag (a marker for further action)
**Type:** Edge
**Covers:** 3.1 → Rule: a rejection is a definitive outcome (the content is not approved); it is distinct from a flag (a marker for further action)
**Preconditions:** A content item is in review.
**Steps:**
1. Reject the content item and verify it is a definitive outcome (the content is not approved, it leaves the queue).
2. Flag a different content item and verify it is a marker (the issue is identified, but the content is not definitively rejected).
3. Verify the two outcomes are distinct.
**Expected Result:** The rejection is a definitive outcome — it is distinct from a flag (a marker for further action).
**Priority:** High

## 3.2 Flag Inappropriate or Incorrect Content

### TC-SA-10-03-009 — Content flagging: the content marked with a flag (the issue identified); a flag is a marker (the issue identified); it is distinct from a rejection
**Type:** Positive
**Covers:** 3.2 → Content flagging: the content marked with a flag (the issue identified); Rule: a flag is a marker (the issue identified); it is distinct from a rejection (a definitive outcome)
**Preconditions:** A content item is found to be inappropriate or incorrect.
**Steps:**
1. Flag the content item (mark it with a flag).
2. Verify the content is marked with a flag (the issue is identified).
3. Verify the flag is a marker (distinct from a rejection).
**Expected Result:** The content is marked with a flag — the issue is identified; the flag is a marker, distinct from a rejection.
**Priority:** Critical

### TC-SA-10-03-010 — Flag types: the flag categories (inappropriate, incorrect, outdated, other)
**Type:** Positive
**Covers:** 3.2 → Flag types: the flag categories (inappropriate, incorrect, outdated, other)
**Preconditions:** A content item is being flagged.
**Steps:**
1. Set the flag type: select the category (inappropriate, incorrect, outdated, other).
2. Verify the flag type is specific (the category is set).
**Expected Result:** The flag type is set — the category (inappropriate, incorrect, outdated, other) is specific.
**Priority:** High

### TC-SA-10-03-011 — Flag on live content: a flag applied to content that is already live; a live issue is caught
**Type:** Negative
**Covers:** 3.2 → Flag on live content: a flag applied to content that is already live; Rule: a flag can be applied to live content (it is not only for pending content); a live issue is caught
**Preconditions:** A content item is already live.
**Steps:**
1. Flag the live content item (the issue is found after it is live).
2. Verify the flag is applied to the live content.
3. Verify the live issue is caught.
**Expected Result:** The flag is applied to the live content — the live issue is caught.
**Priority:** Critical

### TC-SA-10-03-012 — Flag action: the action the flag triggers (a review, a takedown, a correction); the action is per the type
**Type:** Positive
**Covers:** 3.2 → Flag action: the action the flag triggers (a review, a takedown, a correction); Rule: the flag type is specific (the category); the action is per the type (the review, the takedown, the correction)
**Preconditions:** A content item is flagged with a specific type.
**Steps:**
1. Verify the flag triggers the action per the type (a review, a takedown, a correction).
2. For an incorrect-content flag, verify the content is corrected.
3. For an inappropriate-content flag, verify the content is taken down.
**Expected Result:** The flag triggers the action per the type — the review, the takedown, or the correction.
**Priority:** Critical

### TC-SA-10-03-013 — Flag resolution: the flag resolved (the issue addressed, the flag cleared); it is not left open indefinitely
**Type:** Negative
**Covers:** 3.2 → Flag resolution: the flag resolved (the issue addressed, the flag cleared); Rule: a flag is resolved (the issue addressed, the flag cleared); it is not left open indefinitely
**Preconditions:** A content item is flagged and the issue is addressed.
**Steps:**
1. Resolve the flag (the issue is addressed).
2. Verify the flag is cleared.
3. Verify the flag is not left open indefinitely.
**Expected Result:** The flag is resolved — the issue is addressed, the flag is cleared; it is not left open indefinitely.
**Priority:** Critical

### TC-SA-10-03-014 — Flag record: the flag recorded (the flagger, the type, the time); it is auditable
**Type:** Positive
**Covers:** 3.2 → Flag record: the flag recorded (the flagger, the type, the time); Rule: the flag is recorded (the flagger, the type, the time); it is auditable
**Preconditions:** A content item has been flagged.
**Steps:**
1. Open the flag record.
2. Verify it shows the flagger, the type, and the time.
3. Verify the flag is auditable.
**Expected Result:** The flag is recorded (the flagger, the type, the time) — it is auditable.
**Priority:** Critical

### TC-SA-10-03-015 — Flags are audit-logged with the content, the flagger, the type, and the timestamp
**Type:** Positive
**Covers:** 3.2 → Audit logging of the flags; Rule: flags are audit-logged with the content, flagger, type, and timestamp
**Preconditions:** Flag events have occurred.
**Steps:**
1. Open the audit trail and filter by "content flag".
2. Verify entries show the content, the flagger, the type, and the timestamp.
**Expected Result:** The flags are audit-logged with the content, flagger, type, and timestamp.
**Priority:** Critical

## 3.3 Provide Feedback to Content Creators

### TC-SA-10-03-016 — Creator feedback: the feedback given to the creator on their content; it is the communication channel for the rejection/flag
**Type:** Positive
**Covers:** 3.3 → Creator feedback: the feedback given to the creator on their content; Rule: the feedback is given to the creator on their content; it is the communication channel for the rejection/flag
**Preconditions:** A content item is rejected or flagged.
**Steps:**
1. Provide the feedback to the creator on their content (the issues, the suggestions, the what-to-fix).
2. Verify the feedback is given to the creator.
3. Verify it is the communication channel for the rejection/flag.
**Expected Result:** The feedback is given to the creator on their content — it is the communication channel for the rejection/flag.
**Priority:** High

### TC-SA-10-03-017 — Feedback content: the issues, the suggestions, and the what-to-fix
**Type:** Positive
**Covers:** 3.3 → Feedback content: the issues, the suggestions, and the what-to-fix
**Preconditions:** A content item is rejected or flagged.
**Steps:**
1. Compose the feedback: the issues (the wrong answer, the unclear section), the suggestions (how to improve), and the what-to-fix.
2. Verify the feedback content includes the issues, the suggestions, and the what-to-fix.
**Expected Result:** The feedback content includes the issues, the suggestions, and the what-to-fix.
**Priority:** High

### TC-SA-10-03-018 — Feedback delivery: the feedback delivered to the creator (the notification, the message); they receive it with the context
**Type:** Positive
**Covers:** 3.3 → Feedback delivery: the feedback delivered to the creator (the notification, the message); Rule: the feedback is delivered to the creator (the notification, the message); they receive it with the context
**Preconditions:** Feedback is composed for a content item.
**Steps:**
1. Deliver the feedback to the creator (the notification, the message).
2. Verify the creator receives it with the content's context.
**Expected Result:** The feedback is delivered to the creator — they receive it with the context.
**Priority:** High

### TC-SA-10-03-019 — Feedback specificity: the feedback is specific (the issue, the fix, not a vague note); it is actionable, not a vague note
**Type:** Negative
**Covers:** 3.3 → Feedback specificity: the feedback is specific (the issue, the fix, not a vague note); Rule: the feedback is specific (the issue, the fix, the suggestion); it is actionable, not a vague note
**Preconditions:** Feedback is being composed for a content item.
**Steps:**
1. Compose the feedback with specific details: the issue (the wrong answer), the fix (how to correct it), and the suggestion (how to improve it).
2. Verify the feedback is specific (not a vague note).
3. Verify it is actionable.
**Expected Result:** The feedback is specific (the issue, the fix, the suggestion) — it is actionable, not a vague note.
**Priority:** High

### TC-SA-10-03-020 — Feedback history: the feedback per creator (the pattern over time); the creator's development is visible
**Type:** Positive
**Covers:** 3.3 → Feedback history: the feedback per creator (the pattern over time); Rule: the feedback history is per creator (the pattern over time); the creator's development is visible
**Preconditions:** Multiple feedback entries exist for a creator.
**Steps:**
1. Open the feedback history for the creator.
2. Verify the feedback is shown per creator (the pattern over time).
3. Verify the creator's development is visible (the recurring issues, the improvement).
**Expected Result:** The feedback history is per creator — the pattern over time is visible; the creator's development is visible.
**Priority:** Medium

### TC-SA-10-03-021 — Creator improvement: the creator's work improving over the feedback
**Type:** Positive
**Covers:** 3.3 → Creator improvement: the creator's work improving over the feedback
**Preconditions:** A creator has received feedback over time.
**Steps:**
1. Review the creator's submissions over time.
2. Verify the creator's work is improving over the feedback (the rejection rate falling, the quality rising).
**Expected Result:** The creator's work is improving over the feedback — the rejection rate is falling, the quality is rising.
**Priority:** Medium

### TC-SA-10-03-022 — Feedback is audit-logged with the content, the creator, the feedback, and the timestamp
**Type:** Positive
**Covers:** 3.3 → Audit logging of the feedback; Rule: feedback is audit-logged with the content, creator, feedback, and timestamp
**Preconditions:** Feedback events have occurred.
**Steps:**
1. Open the audit trail and filter by "creator feedback".
2. Verify entries show the content, the creator, the feedback, and the timestamp.
**Expected Result:** The feedback is audit-logged with the content, creator, feedback, and timestamp.
**Priority:** Critical

### TC-SA-10-03-023 — A recurring issue gets targeted feedback (the specific guidance); the root cause is addressed
**Type:** Positive
**Covers:** 3.3 → Rule: a recurring issue gets targeted feedback (the specific guidance); the root cause is addressed
**Preconditions:** A creator has a recurring issue (a common error type).
**Steps:**
1. Identify the recurring issue for the creator.
2. Provide targeted feedback (the specific guidance) so the root cause is addressed.
3. Verify the targeted feedback is delivered.
**Expected Result:** The recurring issue gets targeted feedback — the root cause is addressed.
**Priority:** High
