# 4. Quick Actions & Dashboard Customization — Test Cases

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: quick_actions_customization.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 |
|---------|--------------------|----------|
| 4.1 | Quick action: copy referral link | TC-AF-2-04-001 |
| 4.1 | Quick action: download a marketing material | TC-AF-2-04-002 |
| 4.1 | Quick action: request a payout | TC-AF-2-04-003 |
| 4.1 | Quick action: view a report | TC-AF-2-04-004 |
| 4.1 | Quick actions shown on the dashboard | TC-AF-2-04-005 |
| 4.1 | Quick actions available on web and mobile | TC-AF-2-04-006 |
| 4.1 | Quick actions event logging (performed) | TC-AF-2-04-007 |
| 4.1 | Audit logging of the quick actions | TC-AF-2-04-008 |
| 4.1 | Rule: The quick actions are shown on the dashboard. | TC-AF-2-04-001 |
| 4.1 | Rule: Each quick action performs its task in one tap. | TC-AF-2-04-002 |
| 4.1 | Rule: Quick actions events (performed) are logged with the account and the timestamp. | TC-AF-2-04-003 |
| 4.1 | Rule: The quick actions is audit-logged with the account and the timestamp. | TC-AF-2-04-004 |
| 4.2 | Choose which widgets to show | TC-AF-2-04-009 |
| 4.2 | Arrange the widgets | TC-AF-2-04-010 |
| 4.2 | Layout saved per Affiliate | TC-AF-2-04-011 |
| 4.2 | Layout restored on each visit | TC-AF-2-04-012 |
| 4.2 | Reset to the default layout | TC-AF-2-04-013 |
| 4.2 | Layout available on web and mobile | TC-AF-2-04-014 |
| 4.2 | Layout event logging (changed, reset) | TC-AF-2-04-015 |
| 4.2 | Audit logging of the dashboard widget layout | TC-AF-2-04-016 |
| 4.2 | Rule: The widgets can be chosen and arranged. | TC-AF-2-04-009 |
| 4.2 | Rule: The layout is saved per Affiliate. | TC-AF-2-04-010 |
| 4.2 | Rule: The layout can be reset to the default. | TC-AF-2-04-011 |
| 4.2 | Rule: Layout events (changed, reset) are logged with the account and the timestamp. | TC-AF-2-04-012 |
| 4.2 | Rule: The dashboard widget layout is audit-logged with the account and the timestamp. | TC-AF-2-04-013 |
| 4.3 | Preview of important notifications | TC-AF-2-04-017 |
| 4.3 | New purchase notifications | TC-AF-2-04-018 |
| 4.3 | Commission update notifications | TC-AF-2-04-019 |
| 4.3 | Payout status notifications | TC-AF-2-04-020 |
| 4.3 | Tap through to the full notifications | TC-AF-2-04-021 |
| 4.3 | Unread indicator | TC-AF-2-04-022 |
| 4.3 | Preview available on web and mobile | TC-AF-2-04-023 |
| 4.3 | Preview event logging (viewed) | TC-AF-2-04-024 |
| 4.3 | Audit logging of the dashboard notifications preview | TC-AF-2-04-025 |
| 4.3 | Rule: The preview shows the most important notifications. | TC-AF-2-04-017 |
| 4.3 | Rule: An unread indicator is shown. | TC-AF-2-04-018 |
| 4.3 | Rule: Preview events (viewed) are logged with the account and the timestamp. | TC-AF-2-04-019 |
| 4.3 | Rule: The dashboard notifications preview is audit-logged with the account and the timestamp. | TC-AF-2-04-020 |

## 4.1 Quick Actions

### TC-AF-2-04-001 — Quick action: copy referral link
**Type:** Positive
**Covers:** 4.1 → Quick action: copy referral link; Rule: The quick actions are shown on the dashboard.
**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: Quick action: copy referral link.
2. Observe the result and verify the full behavior: Quick action: copy referral link.
**Expected Result:** Quick action: copy referral link — delivered exactly as documented.
**Priority:** Critical

### TC-AF-2-04-002 — Quick action: download a marketing material
**Type:** Positive
**Covers:** 4.1 → Quick action: download a marketing material; Rule: Each quick action performs its task in one tap.
**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: Quick action: download a marketing material.
2. Observe the result and verify the full behavior: Quick action: download a marketing material.
**Expected Result:** Quick action: download a marketing material — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-003 — Quick action: request a payout
**Type:** Positive
**Covers:** 4.1 → Quick action: request a payout; Rule: Quick actions events (performed) 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: Quick action: request a payout.
2. Observe the result and verify the full behavior: Quick action: request a payout.
**Expected Result:** Quick action: request a payout — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-004 — Quick action: view a report
**Type:** Positive
**Covers:** 4.1 → Quick action: view a report; Rule: The quick actions 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: Quick action: view a report.
2. Observe the result and verify the full behavior: Quick action: view a report.
**Expected Result:** Quick action: view a report — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-005 — Quick actions shown on the dashboard
**Type:** Positive
**Covers:** 4.1 → Quick actions shown on the dashboard
**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: Quick actions shown on the dashboard.
2. Observe the result and verify the full behavior: Quick actions shown on the dashboard.
**Expected Result:** Quick actions shown on the dashboard — delivered exactly as documented.
**Priority:** High

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

### TC-AF-2-04-007 — Quick actions event logging (performed)
**Type:** Positive
**Covers:** 4.1 → Quick actions event logging (performed)
**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: Quick actions event logging (performed).
2. Observe the result and verify the full behavior: Quick actions event logging (performed).
**Expected Result:** Quick actions event logging (performed) — delivered exactly as documented.
**Priority:** High

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


## 4.2 Dashboard Widget Layout

### TC-AF-2-04-009 — Choose which widgets to show
**Type:** Positive
**Covers:** 4.2 → Choose which widgets to show; Rule: The widgets can be chosen and arranged.
**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: Choose which widgets to show.
2. Observe the result and verify the full behavior: Choose which widgets to show.
**Expected Result:** Choose which widgets to show — delivered exactly as documented.
**Priority:** Critical

### TC-AF-2-04-010 — Arrange the widgets
**Type:** Positive
**Covers:** 4.2 → Arrange the widgets; Rule: The layout is saved per Affiliate.
**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: Arrange the widgets.
2. Observe the result and verify the full behavior: Arrange the widgets.
**Expected Result:** Arrange the widgets — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-011 — Layout saved per Affiliate
**Type:** Positive
**Covers:** 4.2 → Layout saved per Affiliate; Rule: The layout can be reset to the default.
**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: Layout saved per Affiliate.
2. Observe the result and verify the full behavior: Layout saved per Affiliate.
**Expected Result:** Layout saved per Affiliate — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-012 — Layout restored on each visit
**Type:** Positive
**Covers:** 4.2 → Layout restored on each visit; Rule: Layout events (changed, reset) 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: Layout restored on each visit.
2. Observe the result and verify the full behavior: Layout restored on each visit.
**Expected Result:** Layout restored on each visit — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-013 — Reset to the default layout
**Type:** Positive
**Covers:** 4.2 → Reset to the default layout; Rule: The dashboard widget layout 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: Reset to the default layout.
2. Observe the result and verify the full behavior: Reset to the default layout.
**Expected Result:** Reset to the default layout — delivered exactly as documented.
**Priority:** High

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

### TC-AF-2-04-015 — Layout event logging (changed, reset)
**Type:** Positive
**Covers:** 4.2 → Layout event logging (changed, reset)
**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: Layout event logging (changed, reset).
2. Observe the result and verify the full behavior: Layout event logging (changed, reset).
**Expected Result:** Layout event logging (changed, reset) — delivered exactly as documented.
**Priority:** High

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


## 4.3 Dashboard Notifications Preview

### TC-AF-2-04-017 — Preview of important notifications
**Type:** Positive
**Covers:** 4.3 → Preview of important notifications; Rule: The preview shows the most important notifications.
**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 of important notifications.
2. Observe the result and verify the full behavior: Preview of important notifications.
**Expected Result:** Preview of important notifications — delivered exactly as documented.
**Priority:** Critical

### TC-AF-2-04-018 — New purchase notifications
**Type:** Positive
**Covers:** 4.3 → New purchase notifications; Rule: An unread indicator is shown.
**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: New purchase notifications.
2. Observe the result and verify the full behavior: New purchase notifications.
**Expected Result:** New purchase notifications — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-019 — Commission update notifications
**Type:** Positive
**Covers:** 4.3 → Commission update notifications; Rule: Preview events (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: Commission update notifications.
2. Observe the result and verify the full behavior: Commission update notifications.
**Expected Result:** Commission update notifications — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-020 — Payout status notifications
**Type:** Positive
**Covers:** 4.3 → Payout status notifications; Rule: The dashboard notifications preview 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: Payout status notifications.
2. Observe the result and verify the full behavior: Payout status notifications.
**Expected Result:** Payout status notifications — delivered exactly as documented.
**Priority:** High

### TC-AF-2-04-021 — Tap through to the full notifications
**Type:** Positive
**Covers:** 4.3 → Tap through to the full notifications
**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 full notifications.
2. Observe the result and verify the full behavior: Tap through to the full notifications.
**Expected Result:** Tap through to the full notifications — delivered exactly as documented.
**Priority:** High

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

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

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

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