# 2. Campaign & Milestone Notifications — Test Cases

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: campaign_milestone_notifications.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 | Notification on new campaign launched | TC-AF-9-02-001 |
| 2.1 | Notification on joined campaign starting | TC-AF-9-02-002 |
| 2.1 | Notification on campaign ending | TC-AF-9-02-003 |
| 2.1 | Notification shows the campaign details | TC-AF-9-02-004 |
| 2.1 | Tap through to the campaign | TC-AF-9-02-005 |
| 2.1 | Notifications available on web and mobile | TC-AF-9-02-006 |
| 2.1 | Notifications event logging (sent, viewed) | TC-AF-9-02-007 |
| 2.1 | Audit logging of the campaign update notifications | TC-AF-9-02-008 |
| 2.1 | Rule: The notifications are sent on campaign updates. | TC-AF-9-02-001 |
| 2.1 | Rule: The notification shows the campaign details. | TC-AF-9-02-002 |
| 2.1 | Rule: Notifications events (sent, viewed) are logged with the account and the timestamp. | TC-AF-9-02-003 |
| 2.1 | Rule: The campaign update notifications is audit-logged with the account and the timestamp. | TC-AF-9-02-004 |
| 2.2 | Notification on reaching a milestone tier | TC-AF-9-02-009 |
| 2.2 | Notification on hitting a target | TC-AF-9-02-010 |
| 2.2 | Notification on qualifying for a bonus | TC-AF-9-02-011 |
| 2.2 | Notification shows the milestone details | TC-AF-9-02-012 |
| 2.2 | Tap through to the incentives | TC-AF-9-02-013 |
| 2.2 | Notifications available on web and mobile | TC-AF-9-02-014 |
| 2.2 | Notifications event logging (sent, viewed) | TC-AF-9-02-015 |
| 2.2 | Audit logging of the performance milestone notifications | TC-AF-9-02-016 |
| 2.2 | Rule: The notifications are sent on performance milestones. | TC-AF-9-02-009 |
| 2.2 | Rule: The notification shows the milestone details. | TC-AF-9-02-010 |
| 2.2 | Rule: Notifications events (sent, viewed) are logged with the account and the timestamp. | TC-AF-9-02-011 |
| 2.2 | Rule: The performance milestone notifications is audit-logged with the account and the timestamp. | TC-AF-9-02-012 |
| 2.3 | Notification on commission rate change | TC-AF-9-02-017 |
| 2.3 | Notification on new program feature | TC-AF-9-02-018 |
| 2.3 | Notification on policy update | TC-AF-9-02-019 |
| 2.3 | Notification shows the update details | TC-AF-9-02-020 |
| 2.3 | Tap through to the update details | TC-AF-9-02-021 |
| 2.3 | Notifications available on web and mobile | TC-AF-9-02-022 |
| 2.3 | Notifications event logging (sent, viewed) | TC-AF-9-02-023 |
| 2.3 | Audit logging of the program update notifications | TC-AF-9-02-024 |
| 2.3 | Rule: The notifications are sent on program updates. | TC-AF-9-02-017 |
| 2.3 | Rule: The notification shows the update details. | TC-AF-9-02-018 |
| 2.3 | Rule: Notifications events (sent, viewed) are logged with the account and the timestamp. | TC-AF-9-02-019 |
| 2.3 | Rule: The program update notifications is audit-logged with the account and the timestamp. | TC-AF-9-02-020 |

## 2.1 Campaign Update Notifications

### TC-AF-9-02-001 — Notification on new campaign launched
**Type:** Positive
**Covers:** 2.1 → Notification on new campaign launched; Rule: The notifications are sent on campaign updates.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on new campaign launched.
2. Observe the result and verify the full behavior: Notification on new campaign launched.
**Expected Result:** Notification on new campaign launched — delivered exactly as documented.
**Priority:** Critical

### TC-AF-9-02-002 — Notification on joined campaign starting
**Type:** Positive
**Covers:** 2.1 → Notification on joined campaign starting; Rule: The notification shows the campaign details.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on joined campaign starting.
2. Observe the result and verify the full behavior: Notification on joined campaign starting.
**Expected Result:** Notification on joined campaign starting — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-003 — Notification on campaign ending
**Type:** Positive
**Covers:** 2.1 → Notification on campaign ending; Rule: Notifications events (sent, viewed) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on campaign ending.
2. Observe the result and verify the full behavior: Notification on campaign ending.
**Expected Result:** Notification on campaign ending — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-004 — Notification shows the campaign details
**Type:** Positive
**Covers:** 2.1 → Notification shows the campaign details; Rule: The campaign update notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification shows the campaign details.
2. Observe the result and verify the full behavior: Notification shows the campaign details.
**Expected Result:** Notification shows the campaign details — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-005 — Tap through to the campaign
**Type:** Positive
**Covers:** 2.1 → Tap through to the campaign
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Tap through to the campaign.
2. Observe the result and verify the full behavior: Tap through to the campaign.
**Expected Result:** Tap through to the campaign — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-006 — Notifications available on web and mobile
**Type:** Positive
**Covers:** 2.1 → Notifications available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications available on web and mobile.
2. Observe the result and verify the full behavior: Notifications available on web and mobile.
**Expected Result:** Notifications available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-007 — Notifications event logging (sent, viewed)
**Type:** Positive
**Covers:** 2.1 → Notifications event logging (sent, viewed)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications event logging (sent, viewed).
2. Observe the result and verify the full behavior: Notifications event logging (sent, viewed).
**Expected Result:** Notifications event logging (sent, viewed) — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-008 — Audit logging of the campaign update notifications
**Type:** Positive
**Covers:** 2.1 → Audit logging of the campaign update notifications
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the campaign update notifications action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The campaign update notifications action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 2.2 Performance Milestone Notifications

### TC-AF-9-02-009 — Notification on reaching a milestone tier
**Type:** Positive
**Covers:** 2.2 → Notification on reaching a milestone tier; Rule: The notifications are sent on performance milestones.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on reaching a milestone tier.
2. Observe the result and verify the full behavior: Notification on reaching a milestone tier.
**Expected Result:** Notification on reaching a milestone tier — delivered exactly as documented.
**Priority:** Critical

### TC-AF-9-02-010 — Notification on hitting a target
**Type:** Positive
**Covers:** 2.2 → Notification on hitting a target; Rule: The notification shows the milestone details.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on hitting a target.
2. Observe the result and verify the full behavior: Notification on hitting a target.
**Expected Result:** Notification on hitting a target — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-011 — Notification on qualifying for a bonus
**Type:** Positive
**Covers:** 2.2 → Notification on qualifying for a bonus; Rule: Notifications events (sent, viewed) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on qualifying for a bonus.
2. Observe the result and verify the full behavior: Notification on qualifying for a bonus.
**Expected Result:** Notification on qualifying for a bonus — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-012 — Notification shows the milestone details
**Type:** Positive
**Covers:** 2.2 → Notification shows the milestone details; Rule: The performance milestone notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification shows the milestone details.
2. Observe the result and verify the full behavior: Notification shows the milestone details.
**Expected Result:** Notification shows the milestone details — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-013 — Tap through to the incentives
**Type:** Positive
**Covers:** 2.2 → Tap through to the incentives
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Tap through to the incentives.
2. Observe the result and verify the full behavior: Tap through to the incentives.
**Expected Result:** Tap through to the incentives — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-014 — Notifications available on web and mobile
**Type:** Positive
**Covers:** 2.2 → Notifications available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications available on web and mobile.
2. Observe the result and verify the full behavior: Notifications available on web and mobile.
**Expected Result:** Notifications available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-015 — Notifications event logging (sent, viewed)
**Type:** Positive
**Covers:** 2.2 → Notifications event logging (sent, viewed)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications event logging (sent, viewed).
2. Observe the result and verify the full behavior: Notifications event logging (sent, viewed).
**Expected Result:** Notifications event logging (sent, viewed) — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-016 — Audit logging of the performance milestone notifications
**Type:** Positive
**Covers:** 2.2 → Audit logging of the performance milestone notifications
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the performance milestone notifications action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The performance milestone notifications action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 2.3 Program Update Notifications

### TC-AF-9-02-017 — Notification on commission rate change
**Type:** Positive
**Covers:** 2.3 → Notification on commission rate change; Rule: The notifications are sent on program updates.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on commission rate change.
2. Observe the result and verify the full behavior: Notification on commission rate change.
**Expected Result:** Notification on commission rate change — delivered exactly as documented.
**Priority:** Critical

### TC-AF-9-02-018 — Notification on new program feature
**Type:** Positive
**Covers:** 2.3 → Notification on new program feature; Rule: The notification shows the update details.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on new program feature.
2. Observe the result and verify the full behavior: Notification on new program feature.
**Expected Result:** Notification on new program feature — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-019 — Notification on policy update
**Type:** Positive
**Covers:** 2.3 → Notification on policy update; Rule: Notifications events (sent, viewed) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification on policy update.
2. Observe the result and verify the full behavior: Notification on policy update.
**Expected Result:** Notification on policy update — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-020 — Notification shows the update details
**Type:** Positive
**Covers:** 2.3 → Notification shows the update details; Rule: The program update notifications is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notification shows the update details.
2. Observe the result and verify the full behavior: Notification shows the update details.
**Expected Result:** Notification shows the update details — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-021 — Tap through to the update details
**Type:** Positive
**Covers:** 2.3 → Tap through to the update details
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Tap through to the update details.
2. Observe the result and verify the full behavior: Tap through to the update details.
**Expected Result:** Tap through to the update details — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-022 — Notifications available on web and mobile
**Type:** Positive
**Covers:** 2.3 → Notifications available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications available on web and mobile.
2. Observe the result and verify the full behavior: Notifications available on web and mobile.
**Expected Result:** Notifications available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-023 — Notifications event logging (sent, viewed)
**Type:** Positive
**Covers:** 2.3 → Notifications event logging (sent, viewed)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Notifications event logging (sent, viewed).
2. Observe the result and verify the full behavior: Notifications event logging (sent, viewed).
**Expected Result:** Notifications event logging (sent, viewed) — delivered exactly as documented.
**Priority:** High

### TC-AF-9-02-024 — Audit logging of the program update notifications
**Type:** Positive
**Covers:** 2.3 → Audit logging of the program update notifications
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the program update notifications action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The program update notifications action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
