# 3. White-Label Content — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: white_label_content.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 Branded Course Landing Pages | Landing page template | TC-SA-WL-03-001 |
| 3.1 Branded Course Landing Pages | Landing page branding | TC-SA-WL-03-002 |
| 3.1 Branded Course Landing Pages | Landing page content | TC-SA-WL-03-003 |
| 3.1 Branded Course Landing Pages | Landing page URL | TC-SA-WL-03-004 |
| 3.1 Branded Course Landing Pages | Landing page preview | TC-SA-WL-03-005 |
| 3.1 Branded Course Landing Pages | Rule: a template must be selected before customization | TC-SA-WL-03-006 |
| 3.1 Branded Course Landing Pages | Rule: a page with no custom domain uses the platform domain | TC-SA-WL-03-007 |
| 3.1 Branded Course Landing Pages | Rule: configuration changes are audit-logged | TC-SA-WL-03-008 |
| 3.2 Branded Certificate Templates | Template creation | TC-SA-WL-03-009 |
| 3.2 Branded Certificate Templates | Template design | TC-SA-WL-03-010 |
| 3.2 Branded Certificate Templates | Template assignment | TC-SA-WL-03-011 |
| 3.2 Branded Certificate Templates | Template enablement | TC-SA-WL-03-012 |
| 3.2 Branded Certificate Templates | Template gallery | TC-SA-WL-03-013 |
| 3.2 Branded Certificate Templates | Rule: a creation requires layout, logo, and issuer | TC-SA-WL-03-014 |
| 3.2 Branded Certificate Templates | Rule: a template in use cannot be deleted | TC-SA-WL-03-015 |
| 3.2 Branded Certificate Templates | Rule: template actions are audit-logged | TC-SA-WL-03-016 |
| 3.3 Branded Email and Notification Content | Email content customization | TC-SA-WL-03-017 |
| 3.3 Branded Email and Notification Content | Notification content | TC-SA-WL-03-018 |
| 3.3 Branded Email and Notification Content | Branding in content | TC-SA-WL-03-019 |
| 3.3 Branded Email and Notification Content | Content variables | TC-SA-WL-03-020 |
| 3.3 Branded Email and Notification Content | Content preview | TC-SA-WL-03-021 |
| 3.3 Branded Email and Notification Content | Rule: a notification is limited to the character limit | TC-SA-WL-03-022 |
| 3.3 Branded Email and Notification Content | Rule: an unresolved variable shows the placeholder | TC-SA-WL-03-023 |
| 3.3 Branded Email and Notification Content | Rule: configuration changes are audit-logged | TC-SA-WL-03-024 |
| 3.4 White-Label Scope per Institute | Scope definition | TC-SA-WL-03-025 |
| 3.4 White-Label Scope per Institute | Scope isolation | TC-SA-WL-03-026 |
| 3.4 White-Label Scope per Institute | Scope inheritance | TC-SA-WL-03-027 |
| 3.4 White-Label Scope per Institute | Scope override | TC-SA-WL-03-028 |
| 3.4 White-Label Scope per Institute | Scope audit | TC-SA-WL-03-029 |
| 3.4 White-Label Scope per Institute | Rule: an isolation prevents branding leakage | TC-SA-WL-03-030 |
| 3.4 White-Label Scope per Institute | Rule: an inheritance applies the platform default | TC-SA-WL-03-031 |
| 3.4 White-Label Scope per Institute | Rule: scope changes are audit-logged | TC-SA-WL-03-032 |

### TC-SA-WL-03-001 — Landing page template
**Type:** Positive
**Covers:** 3.1 → Landing page template: the template for the branded course landing page
**Preconditions:** A Super Admin account is active; a template exists.
**Steps:**
1. As a Super Admin, select the landing page template and save.
2. Observe the result and verify the full behavior: the template is applied to the landing page.
**Expected Result:** The template is applied — the page uses it, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-002 — Landing page branding
**Type:** Positive
**Covers:** 3.1 → Landing page branding: the logo, colors, and fonts applied to the page
**Preconditions:** A Super Admin account is active; the institute branding is set.
**Steps:**
1. As a Super Admin, apply the branding to the landing page and save.
2. Observe the result and verify the full behavior: the page carries the logo, colors, and fonts.
**Expected Result:** The branding is applied — the page is branded, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-003 — Landing page content
**Type:** Positive
**Covers:** 3.1 → Landing page content: the course description and call to action customized per institute
**Preconditions:** A Super Admin account is active; a course exists.
**Steps:**
1. As a Super Admin, customize the course description and CTA and save.
2. Observe the result and verify the full behavior: the page shows the customized content.
**Expected Result:** The content is shown — the customization is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-004 — Landing page URL
**Type:** Positive
**Covers:** 3.1 → Landing page URL: the branded URL for the course landing page
**Preconditions:** A Super Admin account is active; the institute has a custom domain.
**Steps:**
1. As a Super Admin, check the landing page URL.
2. Observe the result and verify the full behavior: the URL is on the institute's custom domain.
**Expected Result:** The URL is branded — it is on the custom domain, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-005 — Landing page preview
**Type:** Positive
**Covers:** 3.1 → Landing page preview: the preview of the branded landing page
**Preconditions:** A Super Admin account is active; the landing page is configured.
**Steps:**
1. As a Super Admin, open the landing page preview.
2. Observe the result and verify the full behavior: the preview reflects the current branding.
**Expected Result:** The preview is shown — it reflects the branding, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-006 — Rule: a template must be selected before customization
**Type:** Negative
**Covers:** 3.1 → Rule: a landing page template must be selected before customization
**Preconditions:** A Super Admin account is active; no template is selected.
**Steps:**
1. As a Super Admin, attempt to customize the content without a template.
2. Observe the result and verify the full behavior: the customization is blocked.
**Expected Result:** The customization is blocked — the template precondition is enforced, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-007 — Rule: a page with no custom domain uses the platform domain
**Type:** Positive
**Covers:** 3.1 → Rule: a landing page with no custom domain uses the platform domain
**Preconditions:** A Super Admin account is active; the institute has no custom domain.
**Steps:**
1. As a Super Admin, check the landing page URL.
2. Observe the result and verify the full behavior: the URL is on the platform domain.
**Expected Result:** The platform domain is used — the fallback is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-008 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 3.1 → Audit logging of branded course landing pages
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, customize the landing page 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-WL-03-009 — Template creation
**Type:** Positive
**Covers:** 3.2 → Template creation: the creation of a branded certificate template
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, create a new certificate template with layout, logo, and issuer.
2. Save the template.
3. Observe the result and verify the full behavior: the template is created and listed.
**Expected Result:** The creation works — the template is listed, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-010 — Template design
**Type:** Positive
**Covers:** 3.2 → Template design: the design elements
**Preconditions:** A Super Admin account is active; a template is created.
**Steps:**
1. As a Super Admin, design the layout, logo, colors, and text.
2. Preview the design.
3. Observe the result and verify the full behavior: the design is rendered in the preview.
**Expected Result:** The design is rendered — the preview shows it, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-011 — Template assignment
**Type:** Positive
**Covers:** 3.2 → Template assignment: the assignment of a template to courses
**Preconditions:** A Super Admin account is active; a template and a course exist.
**Steps:**
1. As a Super Admin, assign the template to the course and save.
2. Observe the result and verify the full behavior: the course uses the template for certificates.
**Expected Result:** The assignment works — the course uses the template, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-012 — Template enablement
**Type:** Positive
**Covers:** 3.2 → Template enablement: the template toggled active or inactive
**Preconditions:** A Super Admin account is active; a template exists.
**Steps:**
1. As a Super Admin, activate the template.
2. Observe the result and verify the full behavior: the template is available for issuance.
**Expected Result:** The enablement works — the template is available, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-013 — Template gallery
**Type:** Positive
**Covers:** 3.2 → Template gallery: the gallery of available certificate templates
**Preconditions:** A Super Admin account is active; multiple active templates exist.
**Steps:**
1. As a Super Admin, open the template gallery.
2. Observe the result and verify the full behavior: the active templates are listed.
**Expected Result:** The gallery is shown — the templates are listed, delivered exactly as documented.
**Priority:** Low

### TC-SA-WL-03-014 — Rule: a creation requires layout, logo, and issuer
**Type:** Negative
**Covers:** 3.2 → Rule: a template creation requires a layout, logo, and issuer name
**Preconditions:** A Super Admin account is active; the issuer name is empty.
**Steps:**
1. As a Super Admin, attempt to create the template without an issuer.
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-WL-03-015 — Rule: a template in use cannot be deleted
**Type:** Negative
**Covers:** 3.2 → Rule: a template in use cannot be deleted; it must be unassigned first
**Preconditions:** A Super Admin account is active; a template is assigned to a course.
**Steps:**
1. As a Super Admin, attempt to delete the template.
2. Observe the result and verify the full behavior: the deletion is blocked.
**Expected Result:** The deletion is blocked — the in-use protection is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-016 — Rule: template actions are audit-logged
**Type:** Positive
**Covers:** 3.2 → Audit logging of branded certificate templates
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, create a template.
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-WL-03-017 — Email content customization
**Type:** Positive
**Covers:** 3.3 → Email content customization: the email body customized per event
**Preconditions:** A Super Admin account is active; an event type exists.
**Steps:**
1. As a Super Admin, customize the email body for the event and save.
2. Send a test email.
3. Observe the result and verify the full behavior: the email shows the customized body.
**Expected Result:** The customization is applied — the email shows it, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-018 — Notification content
**Type:** Positive
**Covers:** 3.3 → Notification content: the push and in-app notification text customized
**Preconditions:** A Super Admin account is active; the notification text is set.
**Steps:**
1. As a Super Admin, set the notification text and save.
2. Trigger a notification.
3. Observe the result and verify the full behavior: the notification shows the customized text.
**Expected Result:** The text is shown — the customization is applied, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-019 — Branding in content
**Type:** Positive
**Covers:** 3.3 → Branding in content: the logo and colors embedded in the content
**Preconditions:** A Super Admin account is active; the institute branding is set.
**Steps:**
1. As a Super Admin, embed the branding in the content and save.
2. Preview the content.
3. Observe the result and verify the full behavior: the content carries the logo and colors.
**Expected Result:** The branding is embedded — the content is branded, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-020 — Content variables
**Type:** Positive
**Covers:** 3.3 → Content variables: the dynamic variables
**Preconditions:** A Super Admin account is active; a variable (learner name) is used.
**Steps:**
1. As a Super Admin, add the learner name variable to the content and save.
2. Send a test email to a learner.
3. Observe the result and verify the full behavior: the variable is replaced with the learner's name.
**Expected Result:** The variable is replaced — the name is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-021 — Content preview
**Type:** Positive
**Covers:** 3.3 → Content preview: the preview of the branded content
**Preconditions:** A Super Admin account is active; the content is configured.
**Steps:**
1. As a Super Admin, open the content preview.
2. Observe the result and verify the full behavior: the variables are rendered with sample values.
**Expected Result:** The preview is shown — the variables are rendered, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-022 — Rule: a notification is limited to the character limit
**Type:** Negative
**Covers:** 3.3 → Rule: a notification content is limited to the platform's character limit
**Preconditions:** A Super Admin account is active; the limit is 100 characters; 150 are entered.
**Steps:**
1. As a Super Admin, attempt to save the 150-character notification.
2. Observe the result and verify the full behavior: the save is blocked with a length error.
**Expected Result:** The save is blocked — the limit is enforced, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-023 — Rule: an unresolved variable shows the placeholder
**Type:** Positive
**Covers:** 3.3 → Rule: a content with an unresolved variable shows the variable placeholder
**Preconditions:** A Super Admin account is active; a variable has no value.
**Steps:**
1. As a Super Admin, preview the content with the unresolved variable.
2. Observe the result and verify the full behavior: the placeholder is shown.
**Expected Result:** The placeholder is shown — the unresolved variable is indicated, delivered exactly as documented.
**Priority:** Low

### TC-SA-WL-03-024 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 3.3 → Audit logging of branded email and notification content
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, customize the email content 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-WL-03-025 — Scope definition
**Type:** Positive
**Covers:** 3.4 → Scope definition: the definition of what is white-labeled per institute
**Preconditions:** A Super Admin account is active; an institute exists.
**Steps:**
1. As a Super Admin, define the scope elements for the institute and save.
2. Observe the result and verify the full behavior: the scope is saved and shown.
**Expected Result:** The scope is defined — the elements are saved, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-026 — Scope isolation
**Type:** Positive
**Covers:** 3.4 → Scope isolation: the isolation of branding between institutes
**Preconditions:** A Super Admin account is active; two institutes have different branding.
**Steps:**
1. As a learner of institute A, view the platform.
2. Observe the result and verify the full behavior: only institute A's branding is shown.
**Expected Result:** The isolation works — institute B's branding is not shown, delivered exactly as documented.
**Priority:** Critical

### TC-SA-WL-03-027 — Scope inheritance
**Type:** Positive
**Covers:** 3.4 → Scope inheritance: the inheritance of platform defaults where not overridden
**Preconditions:** A Super Admin account is active; an institute has no override for an element.
**Steps:**
1. As a learner, view the element.
2. Observe the result and verify the full behavior: the platform default is shown.
**Expected Result:** The inheritance works — the default is shown, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-028 — Scope override
**Type:** Positive
**Covers:** 3.4 → Scope override: the override of a specific element per institute
**Preconditions:** A Super Admin account is active; an institute overrides an element.
**Steps:**
1. As a Super Admin, set the override and save.
2. As a learner, view the element.
3. Observe the result and verify the full behavior: the override is shown.
**Expected Result:** The override is applied — the element shows the institute's value, delivered exactly as documented.
**Priority:** High

### TC-SA-WL-03-029 — Scope audit
**Type:** Positive
**Covers:** 3.4 → Scope audit: the audit of the white-label scope per institute
**Preconditions:** A Super Admin account is active; an institute has a scope.
**Steps:**
1. As a Super Admin, open the scope audit for the institute.
2. Observe the result and verify the full behavior: the effective scope is listed.
**Expected Result:** The audit is shown — the effective scope is visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-030 — Rule: an isolation prevents branding leakage
**Type:** Negative
**Covers:** 3.4 → Rule: a scope isolation ensures one institute's branding does not leak to another
**Preconditions:** A Super Admin account is active; institute A has a unique logo.
**Steps:**
1. As a learner of institute B, view the platform.
2. Observe the result and verify the full behavior: institute A's logo is not shown.
**Expected Result:** No leakage — institute A's branding is not shown, delivered exactly as documented.
**Priority:** Critical

### TC-SA-WL-03-031 — Rule: an inheritance applies the platform default
**Type:** Positive
**Covers:** 3.4 → Rule: a scope inheritance applies the platform default where the institute has no override
**Preconditions:** A Super Admin account is active; an institute has no font override.
**Steps:**
1. As a learner, view the platform.
2. Observe the result and verify the full behavior: the platform default font is shown.
**Expected Result:** The default is applied — the platform font is shown, delivered exactly as documented.
**Priority:** Medium

### TC-SA-WL-03-032 — Rule: scope changes are audit-logged
**Type:** Positive
**Covers:** 3.4 → Audit logging of white-label scope per institute
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the scope 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
