# 1. Promotional Content & Templates — Test Cases

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: promotional_content_templates.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 |
|---------|--------------------|----------|
| 1.1 | Browse the promotional content library | TC-AF-3-01-001 |
| 1.1 | Preview a content item | TC-AF-3-01-002 |
| 1.1 | Download a content item | TC-AF-3-01-003 |
| 1.1 | Content in multiple formats | TC-AF-3-01-004 |
| 1.1 | Content is branded and current | TC-AF-3-01-005 |
| 1.1 | Content available on web and mobile | TC-AF-3-01-006 |
| 1.1 | Content event logging (viewed, downloaded) | TC-AF-3-01-007 |
| 1.1 | Audit logging of the downloadable promotional content | TC-AF-3-01-008 |
| 1.1 | Rule: The content is in multiple formats. | TC-AF-3-01-001 |
| 1.1 | Rule: The content is branded and current. | TC-AF-3-01-002 |
| 1.1 | Rule: Content events (viewed, downloaded) are logged with the account and the timestamp. | TC-AF-3-01-003 |
| 1.1 | Rule: The downloadable promotional content is audit-logged with the account and the timestamp. | TC-AF-3-01-004 |
| 1.2 | Browse the email templates | TC-AF-3-01-009 |
| 1.2 | Preview a template | TC-AF-3-01-010 |
| 1.2 | Copy a template | TC-AF-3-01-011 |
| 1.2 | Personalize a template | TC-AF-3-01-012 |
| 1.2 | Templates categorized by purpose | TC-AF-3-01-013 |
| 1.2 | Templates are professional and on-brand | TC-AF-3-01-014 |
| 1.2 | Templates available on web and mobile | TC-AF-3-01-015 |
| 1.2 | Templates event logging (viewed, copied) | TC-AF-3-01-016 |
| 1.2 | Audit logging of the email templates for outreach | TC-AF-3-01-017 |
| 1.2 | Rule: The templates are categorized by purpose. | TC-AF-3-01-009 |
| 1.2 | Rule: The templates are professional and on-brand. | TC-AF-3-01-010 |
| 1.2 | Rule: Templates events (viewed, copied) are logged with the account and the timestamp. | TC-AF-3-01-011 |
| 1.2 | Rule: The email templates for outreach is audit-logged with the account and the timestamp. | TC-AF-3-01-012 |
| 1.3 | Browse the social media content pack | TC-AF-3-01-018 |
| 1.3 | Pre-written captions per course | TC-AF-3-01-019 |
| 1.3 | Hashtag suggestions | TC-AF-3-01-020 |
| 1.3 | Image suggestions | TC-AF-3-01-021 |
| 1.3 | Copy the content | TC-AF-3-01-022 |
| 1.3 | Pack updated with new campaigns | TC-AF-3-01-023 |
| 1.3 | Pack available on web and mobile | TC-AF-3-01-024 |
| 1.3 | Pack event logging (viewed, copied) | TC-AF-3-01-025 |
| 1.3 | Audit logging of the social media content pack | TC-AF-3-01-026 |
| 1.3 | Rule: The pack includes captions, hashtags, and image suggestions. | TC-AF-3-01-018 |
| 1.3 | Rule: The pack is updated with new campaigns. | TC-AF-3-01-019 |
| 1.3 | Rule: Pack events (viewed, copied) are logged with the account and the timestamp. | TC-AF-3-01-020 |
| 1.3 | Rule: The social media content pack is audit-logged with the account and the timestamp. | TC-AF-3-01-021 |

## 1.1 Downloadable Promotional Content

### TC-AF-3-01-001 — Browse the promotional content library
**Type:** Positive
**Covers:** 1.1 → Browse the promotional content library; Rule: The content is in multiple formats.
**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: Browse the promotional content library.
2. Observe the result and verify the full behavior: Browse the promotional content library.
**Expected Result:** Browse the promotional content library — delivered exactly as documented.
**Priority:** Critical

### TC-AF-3-01-002 — Preview a content item
**Type:** Positive
**Covers:** 1.1 → Preview a content item; Rule: The content is branded and current.
**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: Preview a content item.
2. Observe the result and verify the full behavior: Preview a content item.
**Expected Result:** Preview a content item — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-003 — Download a content item
**Type:** Positive
**Covers:** 1.1 → Download a content item; Rule: Content events (viewed, downloaded) 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: Download a content item.
2. Observe the result and verify the full behavior: Download a content item.
**Expected Result:** Download a content item — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-004 — Content in multiple formats
**Type:** Positive
**Covers:** 1.1 → Content in multiple formats; Rule: The downloadable promotional content 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: Content in multiple formats.
2. Observe the result and verify the full behavior: Content in multiple formats.
**Expected Result:** Content in multiple formats — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-005 — Content is branded and current
**Type:** Positive
**Covers:** 1.1 → Content is branded and current
**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: Content is branded and current.
2. Observe the result and verify the full behavior: Content is branded and current.
**Expected Result:** Content is branded and current — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-006 — Content available on web and mobile
**Type:** Positive
**Covers:** 1.1 → Content 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: Content available on web and mobile.
2. Observe the result and verify the full behavior: Content available on web and mobile.
**Expected Result:** Content available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-007 — Content event logging (viewed, downloaded)
**Type:** Positive
**Covers:** 1.1 → Content event logging (viewed, downloaded)
**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: Content event logging (viewed, downloaded).
2. Observe the result and verify the full behavior: Content event logging (viewed, downloaded).
**Expected Result:** Content event logging (viewed, downloaded) — delivered exactly as documented.
**Priority:** High

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


## 1.2 Email Templates for Outreach

### TC-AF-3-01-009 — Browse the email templates
**Type:** Positive
**Covers:** 1.2 → Browse the email templates; Rule: The templates are categorized by purpose.
**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: Browse the email templates.
2. Observe the result and verify the full behavior: Browse the email templates.
**Expected Result:** Browse the email templates — delivered exactly as documented.
**Priority:** Critical

### TC-AF-3-01-010 — Preview a template
**Type:** Positive
**Covers:** 1.2 → Preview a template; Rule: The templates are professional and on-brand.
**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: Preview a template.
2. Observe the result and verify the full behavior: Preview a template.
**Expected Result:** Preview a template — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-011 — Copy a template
**Type:** Positive
**Covers:** 1.2 → Copy a template; Rule: Templates events (viewed, copied) 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: Copy a template.
2. Observe the result and verify the full behavior: Copy a template.
**Expected Result:** Copy a template — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-012 — Personalize a template
**Type:** Positive
**Covers:** 1.2 → Personalize a template; Rule: The email templates for outreach 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: Personalize a template.
2. Observe the result and verify the full behavior: Personalize a template.
**Expected Result:** Personalize a template — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-013 — Templates categorized by purpose
**Type:** Positive
**Covers:** 1.2 → Templates categorized by purpose
**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: Templates categorized by purpose.
2. Observe the result and verify the full behavior: Templates categorized by purpose.
**Expected Result:** Templates categorized by purpose — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-014 — Templates are professional and on-brand
**Type:** Positive
**Covers:** 1.2 → Templates are professional and on-brand
**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: Templates are professional and on-brand.
2. Observe the result and verify the full behavior: Templates are professional and on-brand.
**Expected Result:** Templates are professional and on-brand — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-015 — Templates available on web and mobile
**Type:** Positive
**Covers:** 1.2 → Templates 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: Templates available on web and mobile.
2. Observe the result and verify the full behavior: Templates available on web and mobile.
**Expected Result:** Templates available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-016 — Templates event logging (viewed, copied)
**Type:** Positive
**Covers:** 1.2 → Templates event logging (viewed, copied)
**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: Templates event logging (viewed, copied).
2. Observe the result and verify the full behavior: Templates event logging (viewed, copied).
**Expected Result:** Templates event logging (viewed, copied) — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-017 — Audit logging of the email templates for outreach
**Type:** Positive
**Covers:** 1.2 → Audit logging of the email templates for outreach
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the email templates for outreach action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The email templates for outreach action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 1.3 Social Media Content Pack

### TC-AF-3-01-018 — Browse the social media content pack
**Type:** Positive
**Covers:** 1.3 → Browse the social media content pack; Rule: The pack includes captions, hashtags, and image suggestions.
**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: Browse the social media content pack.
2. Observe the result and verify the full behavior: Browse the social media content pack.
**Expected Result:** Browse the social media content pack — delivered exactly as documented.
**Priority:** Critical

### TC-AF-3-01-019 — Pre-written captions per course
**Type:** Edge
**Covers:** 1.3 → Pre-written captions per course; Rule: The pack is updated with new campaigns.
**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: Pre-written captions per course.
2. Observe the result and verify the full behavior: Pre-written captions per course.
**Expected Result:** Pre-written captions per course — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-020 — Hashtag suggestions
**Type:** Positive
**Covers:** 1.3 → Hashtag suggestions; Rule: Pack events (viewed, copied) 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: Hashtag suggestions.
2. Observe the result and verify the full behavior: Hashtag suggestions.
**Expected Result:** Hashtag suggestions — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-021 — Image suggestions
**Type:** Positive
**Covers:** 1.3 → Image suggestions; Rule: The social media content pack 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: Image suggestions.
2. Observe the result and verify the full behavior: Image suggestions.
**Expected Result:** Image suggestions — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-022 — Copy the content
**Type:** Positive
**Covers:** 1.3 → Copy the content
**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: Copy the content.
2. Observe the result and verify the full behavior: Copy the content.
**Expected Result:** Copy the content — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-023 — Pack updated with new campaigns
**Type:** Positive
**Covers:** 1.3 → Pack updated with new campaigns
**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: Pack updated with new campaigns.
2. Observe the result and verify the full behavior: Pack updated with new campaigns.
**Expected Result:** Pack updated with new campaigns — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-024 — Pack available on web and mobile
**Type:** Positive
**Covers:** 1.3 → Pack 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: Pack available on web and mobile.
2. Observe the result and verify the full behavior: Pack available on web and mobile.
**Expected Result:** Pack available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-025 — Pack event logging (viewed, copied)
**Type:** Positive
**Covers:** 1.3 → Pack event logging (viewed, copied)
**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: Pack event logging (viewed, copied).
2. Observe the result and verify the full behavior: Pack event logging (viewed, copied).
**Expected Result:** Pack event logging (viewed, copied) — delivered exactly as documented.
**Priority:** High

### TC-AF-3-01-026 — Audit logging of the social media content pack
**Type:** Positive
**Covers:** 1.3 → Audit logging of the social media content pack
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the social media content pack action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The social media content pack action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
