# 3. Social Media Automation — Test Cases

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: social_media_automation.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 |
|---------|--------------------|----------|
| 3.1 | Connect social channels | TC-AF-7-03-001 |
| 3.1 | Select a course to promote | TC-AF-7-03-002 |
| 3.1 | One-click post to a connected channel | TC-AF-7-03-003 |
| 3.1 | Pre-designed promotion used | TC-AF-7-03-004 |
| 3.1 | Post tracked for clicks and conversions | TC-AF-7-03-005 |
| 3.1 | Post history | TC-AF-7-03-006 |
| 3.1 | Sharing available on web and mobile | TC-AF-7-03-007 |
| 3.1 | Sharing event logging (posted) | TC-AF-7-03-008 |
| 3.1 | Audit logging of the one-click social sharing | TC-AF-7-03-009 |
| 3.1 | Rule: The social channels must be connected. | TC-AF-7-03-001 |
| 3.1 | Rule: The post uses a pre-designed promotion. | TC-AF-7-03-002 |
| 3.1 | Rule: Sharing events (posted) are logged with the account and the timestamp. | TC-AF-7-03-003 |
| 3.1 | Rule: The one-click social sharing is audit-logged with the account and the timestamp. | TC-AF-7-03-004 |
| 3.2 | Browse the pre-designed post library | TC-AF-7-03-010 |
| 3.2 | Post image, caption, and hashtags | TC-AF-7-03-011 |
| 3.2 | Preview a post | TC-AF-7-03-012 |
| 3.2 | Post a pre-designed post | TC-AF-7-03-013 |
| 3.2 | Download a pre-designed post | TC-AF-7-03-014 |
| 3.2 | Library updated with new campaigns | TC-AF-7-03-015 |
| 3.2 | Library available on web and mobile | TC-AF-7-03-016 |
| 3.2 | Library event logging (viewed, posted, downloaded) | TC-AF-7-03-017 |
| 3.2 | Audit logging of the pre-designed post library | TC-AF-7-03-018 |
| 3.2 | Rule: The posts include image, caption, and hashtags. | TC-AF-7-03-010 |
| 3.2 | Rule: The library is updated with new campaigns. | TC-AF-7-03-011 |
| 3.2 | Rule: Library events (viewed, posted, downloaded) are logged with the account and the timestamp. | TC-AF-7-03-012 |
| 3.2 | Rule: The pre-designed post library is audit-logged with the account and the timestamp. | TC-AF-7-03-013 |
| 3.3 | Hashtag suggestions per course | TC-AF-7-03-019 |
| 3.3 | Hashtag suggestions per campaign | TC-AF-7-03-020 |
| 3.3 | Copy a suggested hashtag | TC-AF-7-03-021 |
| 3.3 | Copy all suggested hashtags | TC-AF-7-03-022 |
| 3.3 | Suggestions updated with trends | TC-AF-7-03-023 |
| 3.3 | Suggestions available on web and mobile | TC-AF-7-03-024 |
| 3.3 | Suggestions event logging (viewed, copied) | TC-AF-7-03-025 |
| 3.3 | Audit logging of the hashtag suggestions | TC-AF-7-03-026 |
| 3.3 | Rule: The hashtags are suggested per course and campaign. | TC-AF-7-03-019 |
| 3.3 | Rule: The suggestions are updated with trends. | TC-AF-7-03-020 |
| 3.3 | Rule: Suggestions events (viewed, copied) are logged with the account and the timestamp. | TC-AF-7-03-021 |
| 3.3 | Rule: The hashtag suggestions is audit-logged with the account and the timestamp. | TC-AF-7-03-022 |

## 3.1 One-Click Social Sharing

### TC-AF-7-03-001 — Connect social channels
**Type:** Positive
**Covers:** 3.1 → Connect social channels; Rule: The social channels must be connected.
**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: Connect social channels.
2. Observe the result and verify the full behavior: Connect social channels.
**Expected Result:** Connect social channels — delivered exactly as documented.
**Priority:** Critical

### TC-AF-7-03-002 — Select a course to promote
**Type:** Positive
**Covers:** 3.1 → Select a course to promote; Rule: The post uses a pre-designed promotion.
**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: Select a course to promote.
2. Observe the result and verify the full behavior: Select a course to promote.
**Expected Result:** Select a course to promote — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-003 — One-click post to a connected channel
**Type:** Positive
**Covers:** 3.1 → One-click post to a connected channel; Rule: Sharing events (posted) 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: One-click post to a connected channel.
2. Observe the result and verify the full behavior: One-click post to a connected channel.
**Expected Result:** One-click post to a connected channel — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-004 — Pre-designed promotion used
**Type:** Positive
**Covers:** 3.1 → Pre-designed promotion used; Rule: The one-click social sharing 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: Pre-designed promotion used.
2. Observe the result and verify the full behavior: Pre-designed promotion used.
**Expected Result:** Pre-designed promotion used — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-005 — Post tracked for clicks and conversions
**Type:** Positive
**Covers:** 3.1 → Post tracked for clicks and conversions
**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: Post tracked for clicks and conversions.
2. Observe the result and verify the full behavior: Post tracked for clicks and conversions.
**Expected Result:** Post tracked for clicks and conversions — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-006 — Post history
**Type:** Positive
**Covers:** 3.1 → Post history
**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: Post history.
2. Observe the result and verify the full behavior: Post history.
**Expected Result:** Post history — delivered exactly as documented.
**Priority:** High

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

### TC-AF-7-03-008 — Sharing event logging (posted)
**Type:** Positive
**Covers:** 3.1 → Sharing event logging (posted)
**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: Sharing event logging (posted).
2. Observe the result and verify the full behavior: Sharing event logging (posted).
**Expected Result:** Sharing event logging (posted) — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-009 — Audit logging of the one-click social sharing
**Type:** Positive
**Covers:** 3.1 → Audit logging of the one-click social sharing
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the one-click social sharing action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The one-click social sharing action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.2 Pre-Designed Post Library

### TC-AF-7-03-010 — Browse the pre-designed post library
**Type:** Positive
**Covers:** 3.2 → Browse the pre-designed post library; Rule: The posts include image, caption, and hashtags.
**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 pre-designed post library.
2. Observe the result and verify the full behavior: Browse the pre-designed post library.
**Expected Result:** Browse the pre-designed post library — delivered exactly as documented.
**Priority:** Critical

### TC-AF-7-03-011 — Post image, caption, and hashtags
**Type:** Edge
**Covers:** 3.2 → Post image, caption, and hashtags; Rule: The library 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: Post image, caption, and hashtags.
2. Observe the result and verify the full behavior: Post image, caption, and hashtags.
**Expected Result:** Post image, caption, and hashtags — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-012 — Preview a post
**Type:** Positive
**Covers:** 3.2 → Preview a post; Rule: Library events (viewed, posted, 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: Preview a post.
2. Observe the result and verify the full behavior: Preview a post.
**Expected Result:** Preview a post — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-013 — Post a pre-designed post
**Type:** Positive
**Covers:** 3.2 → Post a pre-designed post; Rule: The pre-designed post library 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: Post a pre-designed post.
2. Observe the result and verify the full behavior: Post a pre-designed post.
**Expected Result:** Post a pre-designed post — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-014 — Download a pre-designed post
**Type:** Positive
**Covers:** 3.2 → Download a pre-designed post
**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 pre-designed post.
2. Observe the result and verify the full behavior: Download a pre-designed post.
**Expected Result:** Download a pre-designed post — delivered exactly as documented.
**Priority:** High

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

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

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

### TC-AF-7-03-018 — Audit logging of the pre-designed post library
**Type:** Positive
**Covers:** 3.2 → Audit logging of the pre-designed post library
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the pre-designed post library action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The pre-designed post library action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.3 Hashtag Suggestions

### TC-AF-7-03-019 — Hashtag suggestions per course
**Type:** Positive
**Covers:** 3.3 → Hashtag suggestions per course; Rule: The hashtags are suggested per course and 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: Hashtag suggestions per course.
2. Observe the result and verify the full behavior: Hashtag suggestions per course.
**Expected Result:** Hashtag suggestions per course — delivered exactly as documented.
**Priority:** Critical

### TC-AF-7-03-020 — Hashtag suggestions per campaign
**Type:** Positive
**Covers:** 3.3 → Hashtag suggestions per campaign; Rule: The suggestions are updated with trends.
**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 per campaign.
2. Observe the result and verify the full behavior: Hashtag suggestions per campaign.
**Expected Result:** Hashtag suggestions per campaign — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-021 — Copy a suggested hashtag
**Type:** Positive
**Covers:** 3.3 → Copy a suggested hashtag; Rule: Suggestions 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 suggested hashtag.
2. Observe the result and verify the full behavior: Copy a suggested hashtag.
**Expected Result:** Copy a suggested hashtag — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-022 — Copy all suggested hashtags
**Type:** Positive
**Covers:** 3.3 → Copy all suggested hashtags; Rule: The hashtag suggestions 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: Copy all suggested hashtags.
2. Observe the result and verify the full behavior: Copy all suggested hashtags.
**Expected Result:** Copy all suggested hashtags — delivered exactly as documented.
**Priority:** High

### TC-AF-7-03-023 — Suggestions updated with trends
**Type:** Positive
**Covers:** 3.3 → Suggestions updated with trends
**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: Suggestions updated with trends.
2. Observe the result and verify the full behavior: Suggestions updated with trends.
**Expected Result:** Suggestions updated with trends — delivered exactly as documented.
**Priority:** High

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

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

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