# 2. Reward System Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: reward_system_management.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 Reward Catalog | Reward creation | TC-SA-PS-02-001 |
| 2.1 Reward Catalog | Reward categories | TC-SA-PS-02-002 |
| 2.1 Reward Catalog | Reward value | TC-SA-PS-02-003 |
| 2.1 Reward Catalog | Reward enablement | TC-SA-PS-02-004 |
| 2.1 Reward Catalog | Reward catalog | TC-SA-PS-02-005 |
| 2.1 Reward Catalog | Rule: a creation requires a name and a value | TC-SA-PS-02-006 |
| 2.1 Reward Catalog | Rule: a reward with no value cannot be redeemed | TC-SA-PS-02-007 |
| 2.1 Reward Catalog | Rule: reward actions are audit-logged | TC-SA-PS-02-008 |
| 2.2 Real-World Reward Configuration | Reward definition | TC-SA-PS-02-009 |
| 2.2 Real-World Reward Configuration | Reward conditions | TC-SA-PS-02-010 |
| 2.2 Real-World Reward Configuration | Reward redemption | TC-SA-PS-02-011 |
| 2.2 Real-World Reward Configuration | Reward tracking | TC-SA-PS-02-012 |
| 2.2 Real-World Reward Configuration | Reward history | TC-SA-PS-02-013 |
| 2.2 Real-World Reward Configuration | Rule: a reward without a met condition cannot be redeemed | TC-SA-PS-02-014 |
| 2.2 Real-World Reward Configuration | Rule: configuration changes are audit-logged | TC-SA-PS-02-015 |
| 2.3 Digital Reward Tokens | Token issuance | TC-SA-PS-02-016 |
| 2.3 Digital Reward Tokens | Token earning rules | TC-SA-PS-02-017 |
| 2.3 Digital Reward Tokens | Token balance | TC-SA-PS-02-018 |
| 2.3 Digital Reward Tokens | Token spending | TC-SA-PS-02-019 |
| 2.3 Digital Reward Tokens | Token ledger | TC-SA-PS-02-020 |
| 2.3 Digital Reward Tokens | Rule: a spending exceeding the balance is blocked | TC-SA-PS-02-021 |
| 2.3 Digital Reward Tokens | Rule: token actions are audit-logged | TC-SA-PS-02-022 |
| 2.4 Privilege Unlocks | Privilege definition | TC-SA-PS-02-023 |
| 2.4 Privilege Unlocks | Unlock threshold | TC-SA-PS-02-024 |
| 2.4 Privilege Unlocks | Privilege assignment | TC-SA-PS-02-025 |
| 2.4 Privilege Unlocks | Privilege status | TC-SA-PS-02-026 |
| 2.4 Privilege Unlocks | Privilege log | TC-SA-PS-02-027 |
| 2.4 Privilege Unlocks | Rule: a privilege below the threshold remains locked | TC-SA-PS-02-028 |
| 2.4 Privilege Unlocks | Rule: privilege actions are audit-logged | TC-SA-PS-02-029 |
| 2.5 Achievement Showcase | Showcase creation | TC-SA-PS-02-030 |
| 2.5 Achievement Showcase | Achievement display | TC-SA-PS-02-031 |
| 2.5 Achievement Showcase | Showcase sharing | TC-SA-PS-02-032 |
| 2.5 Achievement Showcase | Showcase customization | TC-SA-PS-02-033 |
| 2.5 Achievement Showcase | Showcase history | TC-SA-PS-02-034 |
| 2.5 Achievement Showcase | Rule: a showcase with no achievements shows an empty state | TC-SA-PS-02-035 |
| 2.5 Achievement Showcase | Rule: showcase actions are audit-logged | TC-SA-PS-02-036 |

### TC-SA-PS-02-001 — Reward creation
**Type:** Positive
**Covers:** 2.1 → Reward creation: the creation of a reward
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, create a reward with a name and value.
2. Save the reward.
3. Observe the result and verify the full behavior: the reward is created and listed.
**Expected Result:** The creation works — the reward is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-002 — Reward categories
**Type:** Positive
**Covers:** 2.1 → Reward categories: the categories of rewards
**Preconditions:** A Super Admin account is active; a reward exists.
**Steps:**
1. As a Super Admin, assign the reward to a category and save.
2. Observe the result and verify the full behavior: the category is shown.
**Expected Result:** The category is set — it is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-003 — Reward value
**Type:** Positive
**Covers:** 2.1 → Reward value: the value or points of the reward
**Preconditions:** A Super Admin account is active; a reward exists.
**Steps:**
1. As a Super Admin, set the value and save.
2. Observe the result and verify the full behavior: the value is shown.
**Expected Result:** The value is set — it is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-004 — Reward enablement
**Type:** Positive
**Covers:** 2.1 → Reward enablement: the reward toggled active or inactive
**Preconditions:** A Super Admin account is active; a reward exists.
**Steps:**
1. As a Super Admin, activate the reward.
2. Observe the result and verify the full behavior: the reward is available for redemption.
**Expected Result:** The enablement works — the reward is available, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-005 — Reward catalog
**Type:** Positive
**Covers:** 2.1 → Reward catalog: the catalog of all rewards
**Preconditions:** A Super Admin account is active; multiple rewards exist.
**Steps:**
1. As a Super Admin, open the reward catalog.
2. Observe the result and verify the full behavior: all rewards are listed.
**Expected Result:** The catalog is shown — the rewards are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-006 — Rule: a creation requires a name and a value
**Type:** Negative
**Covers:** 2.1 → Rule: a reward creation requires a name and a value
**Preconditions:** A Super Admin account is active; the value is empty.
**Steps:**
1. As a Super Admin, attempt to create the reward without a value.
2. Observe the result and verify the full behavior: the creation is blocked with a validation error.
**Expected Result:** The creation is blocked — the required fields are enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-007 — Rule: a reward with no value cannot be redeemed
**Type:** Negative
**Covers:** 2.1 → Rule: a reward with no value cannot be redeemed
**Preconditions:** A Super Admin account is active; a reward has no value.
**Steps:**
1. As a learner, attempt to redeem the reward.
2. Observe the result and verify the full behavior: the redemption is blocked.
**Expected Result:** The redemption is blocked — the value precondition is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-008 — Rule: reward actions are audit-logged
**Type:** Positive
**Covers:** 2.1 → Audit logging of reward catalog
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a reward and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-009 — Reward definition
**Type:** Positive
**Covers:** 2.2 → Reward definition: the definition of a real-world reward
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, define a real-world reward and save.
2. Observe the result and verify the full behavior: the reward is defined and listed.
**Expected Result:** The definition works — the reward is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-010 — Reward conditions
**Type:** Positive
**Covers:** 2.2 → Reward conditions: the conditions to earn the reward
**Preconditions:** A Super Admin account is active; a reward exists.
**Steps:**
1. As a Super Admin, set the conditions and save.
2. Observe the result and verify the full behavior: the conditions are shown.
**Expected Result:** The conditions are set — they are shown, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-011 — Reward redemption
**Type:** Positive
**Covers:** 2.2 → Reward redemption: the redemption of the reward
**Preconditions:** A Super Admin account is active; a reward is earned.
**Steps:**
1. As a learner, redeem the reward.
2. Observe the result and verify the full behavior: the redemption is recorded.
**Expected Result:** The redemption works — it is recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-012 — Reward tracking
**Type:** Positive
**Covers:** 2.2 → Reward tracking: the tracking of the reward status
**Preconditions:** A Super Admin account is active; a reward has a status.
**Steps:**
1. As a Super Admin, view the reward tracking.
2. Observe the result and verify the full behavior: the status is shown.
**Expected Result:** The tracking is shown — the status is visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-013 — Reward history
**Type:** Positive
**Covers:** 2.2 → Reward history: the history of the rewards
**Preconditions:** A Super Admin account is active; rewards have a history.
**Steps:**
1. As a Super Admin, open the reward history.
2. Observe the result and verify the full behavior: the past rewards are listed.
**Expected Result:** The history is shown — the rewards are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-014 — Rule: a reward without a met condition cannot be redeemed
**Type:** Negative
**Covers:** 2.2 → Rule: a reward without a met condition cannot be redeemed
**Preconditions:** A Super Admin account is active; a reward's condition is not met.
**Steps:**
1. As a learner, attempt to redeem the reward.
2. Observe the result and verify the full behavior: the redemption is blocked.
**Expected Result:** The redemption is blocked — the condition is not met, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-015 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 2.2 → Audit logging of real-world reward configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, set the conditions and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-016 — Token issuance
**Type:** Positive
**Covers:** 2.3 → Token issuance: the issuance of tokens to a learner
**Preconditions:** A Super Admin account is active; a learner exists.
**Steps:**
1. As a Super Admin, issue tokens to the learner.
2. Observe the result and verify the full behavior: the tokens are added to the balance.
**Expected Result:** The issuance works — the tokens are added, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-017 — Token earning rules
**Type:** Positive
**Covers:** 2.3 → Token earning rules: the rules for earning tokens
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, set the earning rules and save.
2. Observe the result and verify the full behavior: the rules are applied.
**Expected Result:** The rules are set — they are applied, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-018 — Token balance
**Type:** Positive
**Covers:** 2.3 → Token balance: the balance of tokens per learner
**Preconditions:** A Super Admin account is active; a learner has tokens.
**Steps:**
1. As a Super Admin, view the token balance.
2. Observe the result and verify the full behavior: the balance is shown.
**Expected Result:** The balance is shown — it is accurate, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-019 — Token spending
**Type:** Positive
**Covers:** 2.3 → Token spending: the spending of tokens on rewards
**Preconditions:** A Super Admin account is active; a learner has tokens and a reward.
**Steps:**
1. As a learner, spend tokens on the reward.
2. Observe the result and verify the full behavior: the tokens are deducted.
**Expected Result:** The spending works — the tokens are deducted, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-020 — Token ledger
**Type:** Positive
**Covers:** 2.3 → Token ledger: the ledger of token transactions
**Preconditions:** A Super Admin account is active; token transactions exist.
**Steps:**
1. As a Super Admin, open the token ledger.
2. Observe the result and verify the full behavior: the transactions are listed.
**Expected Result:** The ledger is shown — the transactions are listed, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-021 — Rule: a spending exceeding the balance is blocked
**Type:** Negative
**Covers:** 2.3 → Rule: a token spending exceeding the balance is blocked
**Preconditions:** A Super Admin account is active; a learner has 10 tokens; the reward costs 20.
**Steps:**
1. As a learner, attempt to spend 20 tokens.
2. Observe the result and verify the full behavior: the spending is blocked.
**Expected Result:** The spending is blocked — the balance is insufficient, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-022 — Rule: token actions are audit-logged
**Type:** Positive
**Covers:** 2.3 → Audit logging of digital reward tokens
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, issue tokens and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-023 — Privilege definition
**Type:** Positive
**Covers:** 2.4 → Privilege definition: the definition of a privilege
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, define a privilege (screen time) and save.
2. Observe the result and verify the full behavior: the privilege is defined and listed.
**Expected Result:** The definition works — the privilege is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-024 — Unlock threshold
**Type:** Positive
**Covers:** 2.4 → Unlock threshold: the threshold to unlock a privilege
**Preconditions:** A Super Admin account is active; a privilege exists.
**Steps:**
1. As a Super Admin, set the unlock threshold and save.
2. Observe the result and verify the full behavior: the threshold is shown.
**Expected Result:** The threshold is set — it is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-025 — Privilege assignment
**Type:** Positive
**Covers:** 2.4 → Privilege assignment: the assignment of the privilege to a learner
**Preconditions:** A Super Admin account is active; a privilege and a learner exist.
**Steps:**
1. As a Super Admin, assign the privilege to the learner and save.
2. Observe the result and verify the full behavior: the privilege is linked to the learner.
**Expected Result:** The assignment works — the privilege is linked, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-026 — Privilege status
**Type:** Positive
**Covers:** 2.4 → Privilege status: the status of the privilege
**Preconditions:** A Super Admin account is active; a privilege is assigned.
**Steps:**
1. As a Super Admin, view the privilege status.
2. Observe the result and verify the full behavior: the status is shown.
**Expected Result:** The status is shown — it reflects the state, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-027 — Privilege log
**Type:** Positive
**Covers:** 2.4 → Privilege log: the log of the privilege unlocks
**Preconditions:** A Super Admin account is active; privileges have been unlocked.
**Steps:**
1. As a Super Admin, open the privilege log.
2. Observe the result and verify the full behavior: the past unlocks are listed.
**Expected Result:** The log is shown — the unlocks are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-028 — Rule: a privilege below the threshold remains locked
**Type:** Negative
**Covers:** 2.4 → Rule: a privilege below the threshold remains locked
**Preconditions:** A Super Admin account is active; a learner is below the threshold.
**Steps:**
1. As a learner, view the privilege.
2. Observe the result and verify the full behavior: the privilege is locked.
**Expected Result:** The privilege is locked — the threshold is not met, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-029 — Rule: privilege actions are audit-logged
**Type:** Positive
**Covers:** 2.4 → Audit logging of privilege unlocks
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, set the unlock threshold and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-030 — Showcase creation
**Type:** Positive
**Covers:** 2.5 → Showcase creation: the creation of a family achievement showcase
**Preconditions:** A Super Admin account is active; a family exists.
**Steps:**
1. As a Super Admin, create a family achievement showcase and save.
2. Observe the result and verify the full behavior: the showcase is created and linked.
**Expected Result:** The creation works — the showcase is linked, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-031 — Achievement display
**Type:** Positive
**Covers:** 2.5 → Achievement display: the display of the achievements
**Preconditions:** A Super Admin account is active; a showcase has achievements.
**Steps:**
1. As a Super Admin, view the achievement display.
2. Observe the result and verify the full behavior: the achievements are listed.
**Expected Result:** The display is shown — the achievements are listed, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-032 — Showcase sharing
**Type:** Positive
**Covers:** 2.5 → Showcase sharing: the sharing of the showcase with the family
**Preconditions:** A Super Admin account is active; a showcase exists.
**Steps:**
1. As a Super Admin, share the showcase with the family.
2. As a family member, view the showcase.
3. Observe the result and verify the full behavior: the showcase is visible.
**Expected Result:** The sharing works — the showcase is visible, delivered exactly as documented.
**Priority:** High

### TC-SA-PS-02-033 — Showcase customization
**Type:** Positive
**Covers:** 2.5 → Showcase customization: the customization of the showcase
**Preconditions:** A Super Admin account is active; a showcase exists.
**Steps:**
1. As a family member, customize the showcase.
2. Observe the result and verify the full behavior: the customization is applied.
**Expected Result:** The customization works — it is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-PS-02-034 — Showcase history
**Type:** Positive
**Covers:** 2.5 → Showcase history: the history of the showcase
**Preconditions:** A Super Admin account is active; a showcase has a history.
**Steps:**
1. As a Super Admin, open the showcase history.
2. Observe the result and verify the full behavior: the past showcases are listed.
**Expected Result:** The history is shown — the showcases are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-035 — Rule: a showcase with no achievements shows an empty state
**Type:** Positive
**Covers:** 2.5 → Rule: a showcase with no achievements shows an empty state
**Preconditions:** A Super Admin account is active; a showcase has no achievements.
**Steps:**
1. As a family member, view the showcase.
2. Observe the result and verify the full behavior: an empty state is shown.
**Expected Result:** The empty state is shown — it is displayed, delivered exactly as documented.
**Priority:** Low

### TC-SA-PS-02-036 — Rule: showcase actions are audit-logged
**Type:** Positive
**Covers:** 2.5 → Audit logging of achievement showcase
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a showcase and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the action is recorded with the actor and timestamp.
**Expected Result:** The action is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High
