# 3. Data Export — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: data_export.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature,
  expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 3.1 Export User Data | Export: the export (the export, the user, the data, the date) | TC-SA-23-03-001 |
| 3.1 Export User Data | User: the user (the user, the name, the export) | TC-SA-23-03-002 |
| 3.1 Export User Data | Data: the data (the data of the user, the type, the date) | TC-SA-23-03-003 |
| 3.1 Export User Data | Export format: the format (the format of the export, e.g., the CSV, the JSON) | TC-SA-23-03-004 |
| 3.1 Export User Data | Export status: the status (the completed, the in-progress, the failed) | TC-SA-23-03-005 |
| 3.1 Export User Data | Export count: the count (the count of the exports) | TC-SA-23-03-006 |
| 3.1 Export User Data | Export view: the view (the exports, the users, the data, the dates) | TC-SA-23-03-007 |
| 3.1 Export User Data | Audit logging of the user data export | TC-SA-23-03-008 |
| 3.1 Export User Data | Rule: the export is the transfer (the export, the user, the data, the date); the export is the move | TC-SA-23-03-001 |
| 3.1 Export User Data | Rule: the user is the owner (the user, the name, the export); the user is the subject | TC-SA-23-03-002 |
| 3.1 Export User Data | Rule: the data is the content (the data of the user, the type, the date); the data is the personal data | TC-SA-23-03-003 |
| 3.1 Export User Data | Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control | TC-SA-23-03-005 |
| 3.1 Export User Data | Rule: the user data is exported (the exports, the users, the data, the dates); the transfer is managed | TC-SA-23-03-007 |
| 3.1 Export User Data | Rule: user data export is audit-logged with the export, user, and timestamp | TC-SA-23-03-008 |
| 3.2 Export Content Data | Export: the export (the export, the content, the data, the date) | TC-SA-23-03-009 |
| 3.2 Export Content Data | Content: the content (the content, the type, the date) | TC-SA-23-03-010 |
| 3.2 Export Content Data | Data: the data (the data of the content, the type, the date) | TC-SA-23-03-011 |
| 3.2 Export Content Data | Export format: the format (the format of the export, e.g., the CSV, the JSON) | TC-SA-23-03-012 |
| 3.2 Export Content Data | Export status: the status (the completed, the in-progress, the failed) | TC-SA-23-03-013 |
| 3.2 Export Content Data | Export count: the count (the count of the exports) | TC-SA-23-03-014 |
| 3.2 Export Content Data | Export view: the view (the exports, the content, the data, the dates) | TC-SA-23-03-015 |
| 3.2 Export Content Data | Audit logging of the content data export | TC-SA-23-03-016 |
| 3.2 Export Content Data | Rule: the export is the transfer (the export, the content, the data, the date); the export is the move | TC-SA-23-03-009 |
| 3.2 Export Content Data | Rule: the content is the subject (the content, the type, the date); the content is the asset | TC-SA-23-03-010 |
| 3.2 Export Content Data | Rule: the data is the content (the data of the content, the type, the date); the data is the payload | TC-SA-23-03-011 |
| 3.2 Export Content Data | Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control | TC-SA-23-03-013 |
| 3.2 Export Content Data | Rule: the content data is exported (the exports, the content, the data, the dates); the transfer is managed | TC-SA-23-03-015 |
| 3.2 Export Content Data | Rule: content data export is audit-logged with the export, content, and timestamp | TC-SA-23-03-016 |
| 3.3 Export Financial and Transaction Data | Export: the export (the export, the transaction, the data, the date) | TC-SA-23-03-017 |
| 3.3 Export Financial and Transaction Data | Transaction: the transaction (the transaction, the amount, the date) | TC-SA-23-03-018 |
| 3.3 Export Financial and Transaction Data | Data: the data (the data of the transaction, the type, the date) | TC-SA-23-03-019 |
| 3.3 Export Financial and Transaction Data | Export format: the format (the format of the export, e.g., the CSV, the JSON) | TC-SA-23-03-020 |
| 3.3 Export Financial and Transaction Data | Export status: the status (the completed, the in-progress, the failed) | TC-SA-23-03-021 |
| 3.3 Export Financial and Transaction Data | Export count: the count (the count of the exports) | TC-SA-23-03-022 |
| 3.3 Export Financial and Transaction Data | Export view: the view (the exports, the transactions, the data, the dates) | TC-SA-23-03-023 |
| 3.3 Export Financial and Transaction Data | Audit logging of the financial data export | TC-SA-23-03-024 |
| 3.3 Export Financial and Transaction Data | Rule: the export is the transfer (the export, the transaction, the data, the date); the export is the move | TC-SA-23-03-017 |
| 3.3 Export Financial and Transaction Data | Rule: the transaction is the event (the transaction, the amount, the date); the transaction is the payment | TC-SA-23-03-018 |
| 3.3 Export Financial and Transaction Data | Rule: the data is the content (the data of the transaction, the type, the date); the data is the payload | TC-SA-23-03-019 |
| 3.3 Export Financial and Transaction Data | Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control | TC-SA-23-03-021 |
| 3.3 Export Financial and Transaction Data | Rule: the financial data is exported (the exports, the transactions, the data, the dates); the transfer is managed | TC-SA-23-03-023 |
| 3.3 Export Financial and Transaction Data | Rule: financial data export is audit-logged with the export, transaction, and timestamp | TC-SA-23-03-024 |
| 3.4 Export Analytics and Report Data | Export: the export (the export, the report, the data, the date) | TC-SA-23-03-025 |
| 3.4 Export Analytics and Report Data | Report: the report (the report, the type, the date) | TC-SA-23-03-026 |
| 3.4 Export Analytics and Report Data | Data: the data (the data of the report, the type, the date) | TC-SA-23-03-027 |
| 3.4 Export Analytics and Report Data | Export format: the format (the format of the export, e.g., the CSV, the JSON) | TC-SA-23-03-028 |
| 3.4 Export Analytics and Report Data | Export status: the status (the completed, the in-progress, the failed) | TC-SA-23-03-029 |
| 3.4 Export Analytics and Report Data | Export count: the count (the count of the exports) | TC-SA-23-03-030 |
| 3.4 Export Analytics and Report Data | Export view: the view (the exports, the reports, the data, the dates) | TC-SA-23-03-031 |
| 3.4 Export Analytics and Report Data | Audit logging of the analytics data export | TC-SA-23-03-032 |
| 3.4 Export Analytics and Report Data | Rule: the export is the transfer (the export, the report, the data, the date); the export is the move | TC-SA-23-03-025 |
| 3.4 Export Analytics and Report Data | Rule: the report is the document (the report, the type, the date); the report is the summary | TC-SA-23-03-026 |
| 3.4 Export Analytics and Report Data | Rule: the data is the content (the data of the report, the type, the date); the data is the payload | TC-SA-23-03-027 |
| 3.4 Export Analytics and Report Data | Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control | TC-SA-23-03-029 |
| 3.4 Export Analytics and Report Data | Rule: the analytics data is exported (the exports, the reports, the data, the dates); the transfer is managed | TC-SA-23-03-031 |
| 3.4 Export Analytics and Report Data | Rule: analytics data export is audit-logged with the export, report, and timestamp | TC-SA-23-03-032 |
| 3.5 Export Data for Institute Records | Export: the export (the export, the institute, the data, the date) | TC-SA-23-03-033 |
| 3.5 Export Data for Institute Records | Institute: the institute (the institute, the name, the export) | TC-SA-23-03-034 |
| 3.5 Export Data for Institute Records | Data: the data (the data of the institute, the type, the date) | TC-SA-23-03-035 |
| 3.5 Export Data for Institute Records | Export format: the format (the format of the export, e.g., the CSV, the JSON) | TC-SA-23-03-036 |
| 3.5 Export Data for Institute Records | Export status: the status (the completed, the in-progress, the failed) | TC-SA-23-03-037 |
| 3.5 Export Data for Institute Records | Export count: the count (the count of the exports) | TC-SA-23-03-038 |
| 3.5 Export Data for Institute Records | Export view: the view (the exports, the institutes, the data, the dates) | TC-SA-23-03-039 |
| 3.5 Export Data for Institute Records | Audit logging of the institute data export | TC-SA-23-03-040 |
| 3.5 Export Data for Institute Records | Rule: the export is the transfer (the export, the institute, the data, the date); the export is the move | TC-SA-23-03-033 |
| 3.5 Export Data for Institute Records | Rule: the institute is the organization (the institute, the name, the export); the institute is the client | TC-SA-23-03-034 |
| 3.5 Export Data for Institute Records | Rule: the data is the content (the data of the institute, the type, the date); the data is the payload | TC-SA-23-03-035 |
| 3.5 Export Data for Institute Records | Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control | TC-SA-23-03-037 |
| 3.5 Export Data for Institute Records | Rule: the institute has the records (the exports, the institutes, the data, the dates); the transfer is managed | TC-SA-23-03-039 |
| 3.5 Export Data for Institute Records | Rule: institute data export is audit-logged with the export, institute, and timestamp | TC-SA-23-03-040 |

## 3.1 Export User Data

### TC-SA-23-03-001 — Export: the export (the export, the user, the data, the date); the export is the move
**Type:** Positive
**Covers:** 3.1 → Export: the export (the export, the user, the data, the date); Rule: the export is the transfer (the export, the user, the data, the date); the export is the move
**Preconditions:** Super Admin is logged in; users with data exist.
**Steps:**
1. Open Backup & Data Export → Data Export → Export User Data.
2. Export the user data: the export (the export, the user, the data, the date) — verify the export is the transfer.
3. Verify the export shows the user, the data, and the date.
4. Verify the exported file contains exactly the selected user's data (complete, uncorrupted transfer).
**Expected Result:** The user data is exported — the export, the user, the data, and the date are the move.
**Priority:** Critical

### TC-SA-23-03-002 — User: the user (the user, the name, the export); the user is the subject
**Type:** Positive
**Covers:** 3.1 → User: the user (the user, the name, the export); Rule: the user is the owner (the user, the name, the export); the user is the subject
**Preconditions:** Multiple users exist.
**Steps:**
1. Select the user: the user (the user, the name, the export) — verify the user is the owner.
2. Verify the user shows the name and the export.
3. Verify the export is scoped to exactly the selected user (no other user's data leaks into the file).
**Expected Result:** The user is selected — the user, the name, and the export are the subject; exports never leak across users.
**Priority:** High

### TC-SA-23-03-003 — Data: the data (the data of the user, the type, the date); the data is the personal data
**Type:** Positive
**Covers:** 3.1 → Data: the data (the data of the user, the type, the date); Rule: the data is the content (the data of the user, the type, the date); the data is the personal data
**Preconditions:** A user with multiple data types exists.
**Steps:**
1. Select the data: the data (the data of the user, the type, the date) — verify the data is the content.
2. Verify the data shows the type and the date.
3. Export with a data-type selection — verify only the selected data types are included.
**Expected Result:** The data is selected — the data of the user, the type, and the date are the personal data; only selected types are exported.
**Priority:** High

### TC-SA-23-03-004 — Export format: the format (the format of the export, e.g., the CSV, the JSON); the format is the structure
**Type:** Edge
**Covers:** 3.1 → Export format: the format (the format of the export, e.g., the CSV, the JSON)
**Preconditions:** A user with data containing special characters, unicode text, and embedded commas/quotes (format-integrity edge) exists.
**Steps:**
1. Set the export format: the format (the format of the export, e.g., the CSV, the JSON) — verify the format is the structure.
2. Export in CSV — verify the file is valid CSV (special characters properly escaped, no broken columns).
3. Export the same data in JSON — verify the file is valid, parseable JSON with the same data.
**Expected Result:** The export format is set — the format of the export (the CSV, the JSON) is the structure; both formats produce valid, parseable files with identical data.
**Priority:** High

### TC-SA-23-03-005 — Export status: the status (the completed, the in-progress, the failed); the status is the control
**Type:** Positive
**Covers:** 3.1 → Export status: the status (the completed, the in-progress, the failed); Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control
**Preconditions:** User data exports with various statuses exist.
**Steps:**
1. View the export status: the status (the completed, the in-progress, the failed) — verify the export status is the state.
2. Start an export — verify it shows in-progress, then completed on success.
3. Verify a failed export shows failed with the reason.
**Expected Result:** The export status is shown — the completed, the in-progress, and the failed are the control.
**Priority:** High

### TC-SA-23-03-006 — Export count: the count (the count of the exports); the count is the measure
**Type:** Positive
**Covers:** 3.1 → Export count: the count (the count of the exports)
**Preconditions:** Multiple user data exports exist.
**Steps:**
1. View the export count: the count (the count of the exports) — verify the export count is the measure.
2. Verify the count matches the actual number of exports.
3. Complete a new export — verify the count increments.
**Expected Result:** The export count is shown — the count of the exports is the measure.
**Priority:** High

### TC-SA-23-03-007 — Export view: the view (the exports, the users, the data, the dates); the transfer is managed
**Type:** Positive
**Covers:** 3.1 → Export view: the view (the exports, the users, the data, the dates); Rule: the user data is exported (the exports, the users, the data, the dates); the transfer is managed
**Preconditions:** Multiple user data exports exist.
**Steps:**
1. View the exports: the view (the exports, the users, the data, the dates) — verify the user data is exported.
2. Verify each export shows the user, the data, and the date.
3. Verify the transfer is managed (view, select, export, verify).
**Expected Result:** The exports are viewed — the exports, the users, the data, and the dates are visible; the transfer is managed.
**Priority:** High

### TC-SA-23-03-008 — User data export is audit-logged with the export, user, and timestamp
**Type:** Positive
**Covers:** 3.1 → Audit logging of the user data export; Rule: user data export is audit-logged with the export, user, and timestamp
**Preconditions:** Super Admin has exported user data.
**Steps:**
1. Open the audit trail and filter by "user data export".
2. Verify entries show the export, the user, and the timestamp.
**Expected Result:** The user data export is audit-logged with the export, user, and timestamp.
**Priority:** Critical

## 3.2 Export Content Data

### TC-SA-23-03-009 — Export: the export (the export, the content, the data, the date); the export is the move
**Type:** Positive
**Covers:** 3.2 → Export: the export (the export, the content, the data, the date); Rule: the export is the transfer (the export, the content, the data, the date); the export is the move
**Preconditions:** Super Admin is logged in; content with data exists.
**Steps:**
1. Open Backup & Data Export → Data Export → Export Content Data.
2. Export the content data: the export (the export, the content, the data, the date) — verify the export is the transfer.
3. Verify the export shows the content, the data, and the date.
4. Verify the exported file contains exactly the selected content's data.
**Expected Result:** The content data is exported — the export, the content, the data, and the date are the move.
**Priority:** Critical

### TC-SA-23-03-010 — Content: the content (the content, the type, the date); the content is the asset
**Type:** Positive
**Covers:** 3.2 → Content: the content (the content, the type, the date); Rule: the content is the subject (the content, the type, the date); the content is the asset
**Preconditions:** Multiple content items of different types exist.
**Steps:**
1. Select the content: the content (the content, the type, the date) — verify the content is the subject.
2. Verify the content shows the type and the date.
3. Verify the export is scoped to exactly the selected content.
**Expected Result:** The content is selected — the content, the type, and the date are the asset.
**Priority:** High

### TC-SA-23-03-011 — Data: the data (the data of the content, the type, the date); the data is the payload
**Type:** Positive
**Covers:** 3.2 → Data: the data (the data of the content, the type, the date); Rule: the data is the content (the data of the content, the type, the date); the data is the payload
**Preconditions:** Content with multiple data types exists.
**Steps:**
1. Select the data: the data (the data of the content, the type, the date) — verify the data is the content.
2. Verify the data shows the type and the date.
3. Export with a data-type selection — verify only the selected data types are included.
**Expected Result:** The data is selected — the data of the content, the type, and the date are the payload.
**Priority:** High

### TC-SA-23-03-012 — Export format: the format (the format of the export, e.g., the CSV, the JSON); the format is the structure
**Type:** Edge
**Covers:** 3.2 → Export format: the format (the format of the export, e.g., the CSV, the JSON)
**Preconditions:** Content with data containing special characters and unicode text (format-integrity edge) exists.
**Steps:**
1. Set the export format: the format (the format of the export, e.g., the CSV, the JSON) — verify the format is the structure.
2. Export in CSV — verify the file is valid CSV (no broken columns).
3. Export the same data in JSON — verify the file is valid, parseable JSON with the same data.
**Expected Result:** The export format is set — the format of the export (the CSV, the JSON) is the structure; both formats produce valid, parseable files.
**Priority:** High

### TC-SA-23-03-013 — Export status: the status (the completed, the in-progress, the failed); the status is the control
**Type:** Positive
**Covers:** 3.2 → Export status: the status (the completed, the in-progress, the failed); Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control
**Preconditions:** Content data exports with various statuses exist.
**Steps:**
1. View the export status: the status (the completed, the in-progress, the failed) — verify the export status is the state.
2. Start an export — verify it shows in-progress, then completed on success.
3. Verify a failed export shows failed with the reason.
**Expected Result:** The export status is shown — the completed, the in-progress, and the failed are the control.
**Priority:** High

### TC-SA-23-03-014 — Export count: the count (the count of the exports); the count is the measure
**Type:** Positive
**Covers:** 3.2 → Export count: the count (the count of the exports)
**Preconditions:** Multiple content data exports exist.
**Steps:**
1. View the export count: the count (the count of the exports) — verify the export count is the measure.
2. Verify the count matches the actual number of exports.
3. Complete a new export — verify the count increments.
**Expected Result:** The export count is shown — the count of the exports is the measure.
**Priority:** High

### TC-SA-23-03-015 — Export view: the view (the exports, the content, the data, the dates); the transfer is managed
**Type:** Positive
**Covers:** 3.2 → Export view: the view (the exports, the content, the data, the dates); Rule: the content data is exported (the exports, the content, the data, the dates); the transfer is managed
**Preconditions:** Multiple content data exports exist.
**Steps:**
1. View the exports: the view (the exports, the content, the data, the dates) — verify the content data is exported.
2. Verify each export shows the content, the data, and the date.
3. Verify the transfer is managed (view, select, export, verify).
**Expected Result:** The exports are viewed — the exports, the content, the data, and the dates are visible; the transfer is managed.
**Priority:** High

### TC-SA-23-03-016 — Content data export is audit-logged with the export, content, and timestamp
**Type:** Positive
**Covers:** 3.2 → Audit logging of the content data export; Rule: content data export is audit-logged with the export, content, and timestamp
**Preconditions:** Super Admin has exported content data.
**Steps:**
1. Open the audit trail and filter by "content data export".
2. Verify entries show the export, the content, and the timestamp.
**Expected Result:** The content data export is audit-logged with the export, content, and timestamp.
**Priority:** Critical

## 3.3 Export Financial and Transaction Data

### TC-SA-23-03-017 — Export: the export (the export, the transaction, the data, the date); the export is the move
**Type:** Positive
**Covers:** 3.3 → Export: the export (the export, the transaction, the data, the date); Rule: the export is the transfer (the export, the transaction, the data, the date); the export is the move
**Preconditions:** Super Admin is logged in; transactions exist.
**Steps:**
1. Open Backup & Data Export → Data Export → Export Financial and Transaction Data.
2. Export the financial data: the export (the export, the transaction, the data, the date) — verify the export is the transfer.
3. Verify the export shows the transaction, the data, and the date.
4. Verify the exported file contains exactly the selected transactions' data.
**Expected Result:** The financial data is exported — the export, the transaction, the data, and the date are the move.
**Priority:** Critical

### TC-SA-23-03-018 — Transaction: the transaction (the transaction, the amount, the date); the transaction is the payment
**Type:** Positive
**Covers:** 3.3 → Transaction: the transaction (the transaction, the amount, the date); Rule: the transaction is the event (the transaction, the amount, the date); the transaction is the payment
**Preconditions:** Multiple transactions exist.
**Steps:**
1. Select the transaction: the transaction (the transaction, the amount, the date) — verify the transaction is the event.
2. Verify the transaction shows the amount and the date.
3. Verify the export is scoped to exactly the selected transactions.
**Expected Result:** The transaction is selected — the transaction, the amount, and the date are the payment.
**Priority:** High

### TC-SA-23-03-019 — Data: the data (the data of the transaction, the type, the date); the data is the payload
**Type:** Positive
**Covers:** 3.3 → Data: the data (the data of the transaction, the type, the date); Rule: the data is the content (the data of the transaction, the type, the date); the data is the payload
**Preconditions:** Transactions with multiple data types exist.
**Steps:**
1. Select the data: the data (the data of the transaction, the type, the date) — verify the data is the content.
2. Verify the data shows the type and the date.
3. Export with a data-type selection — verify only the selected data types are included.
**Expected Result:** The data is selected — the data of the transaction, the type, and the date are the payload.
**Priority:** High

### TC-SA-23-03-020 — Export format: the format (the format of the export, e.g., the CSV, the JSON); the format is the structure
**Type:** Edge
**Covers:** 3.3 → Export format: the format (the format of the export, e.g., the CSV, the JSON)
**Preconditions:** Transactions with decimal amounts, currency symbols, and special characters (format-integrity edge) exist.
**Steps:**
1. Set the export format: the format (the format of the export, e.g., the CSV, the JSON) — verify the format is the structure.
2. Export in CSV — verify amounts are exact (no floating-point drift, no broken columns).
3. Export the same data in JSON — verify the file is valid, parseable JSON with identical amounts.
**Expected Result:** The export format is set — the format of the export (the CSV, the JSON) is the structure; financial amounts are exact in both formats.
**Priority:** High

### TC-SA-23-03-021 — Export status: the status (the completed, the in-progress, the failed); the status is the control
**Type:** Positive
**Covers:** 3.3 → Export status: the status (the completed, the in-progress, the failed); Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control
**Preconditions:** Financial data exports with various statuses exist.
**Steps:**
1. View the export status: the status (the completed, the in-progress, the failed) — verify the export status is the state.
2. Start an export — verify it shows in-progress, then completed on success.
3. Verify a failed export shows failed with the reason.
**Expected Result:** The export status is shown — the completed, the in-progress, and the failed are the control.
**Priority:** High

### TC-SA-23-03-022 — Export count: the count (the count of the exports); the count is the measure
**Type:** Positive
**Covers:** 3.3 → Export count: the count (the count of the exports)
**Preconditions:** Multiple financial data exports exist.
**Steps:**
1. View the export count: the count (the count of the exports) — verify the export count is the measure.
2. Verify the count matches the actual number of exports.
3. Complete a new export — verify the count increments.
**Expected Result:** The export count is shown — the count of the exports is the measure.
**Priority:** High

### TC-SA-23-03-023 — Export view: the view (the exports, the transactions, the data, the dates); the transfer is managed
**Type:** Positive
**Covers:** 3.3 → Export view: the view (the exports, the transactions, the data, the dates); Rule: the financial data is exported (the exports, the transactions, the data, the dates); the transfer is managed
**Preconditions:** Multiple financial data exports exist.
**Steps:**
1. View the exports: the view (the exports, the transactions, the data, the dates) — verify the financial data is exported.
2. Verify each export shows the transaction, the data, and the date.
3. Verify the transfer is managed (view, select, export, verify).
**Expected Result:** The exports are viewed — the exports, the transactions, the data, and the dates are visible; the transfer is managed.
**Priority:** High

### TC-SA-23-03-024 — Financial data export is audit-logged with the export, transaction, and timestamp
**Type:** Positive
**Covers:** 3.3 → Audit logging of the financial data export; Rule: financial data export is audit-logged with the export, transaction, and timestamp
**Preconditions:** Super Admin has exported financial data.
**Steps:**
1. Open the audit trail and filter by "financial data export".
2. Verify entries show the export, the transaction, and the timestamp.
**Expected Result:** The financial data export is audit-logged with the export, transaction, and timestamp.
**Priority:** Critical

## 3.4 Export Analytics and Report Data

### TC-SA-23-03-025 — Export: the export (the export, the report, the data, the date); the export is the move
**Type:** Positive
**Covers:** 3.4 → Export: the export (the export, the report, the data, the date); Rule: the export is the transfer (the export, the report, the data, the date); the export is the move
**Preconditions:** Super Admin is logged in; reports with data exist.
**Steps:**
1. Open Backup & Data Export → Data Export → Export Analytics and Report Data.
2. Export the analytics data: the export (the export, the report, the data, the date) — verify the export is the transfer.
3. Verify the export shows the report, the data, and the date.
4. Verify the exported file contains exactly the selected report's data.
**Expected Result:** The analytics data is exported — the export, the report, the data, and the date are the move.
**Priority:** Critical

### TC-SA-23-03-026 — Report: the report (the report, the type, the date); the report is the summary
**Type:** Positive
**Covers:** 3.4 → Report: the report (the report, the type, the date); Rule: the report is the document (the report, the type, the date); the report is the summary
**Preconditions:** Multiple reports of different types exist.
**Steps:**
1. Select the report: the report (the report, the type, the date) — verify the report is the document.
2. Verify the report shows the type and the date.
3. Verify the export is scoped to exactly the selected report.
**Expected Result:** The report is selected — the report, the type, and the date are the summary.
**Priority:** High

### TC-SA-23-03-027 — Data: the data (the data of the report, the type, the date); the data is the payload
**Type:** Positive
**Covers:** 3.4 → Data: the data (the data of the report, the type, the date); Rule: the data is the content (the data of the report, the type, the date); the data is the payload
**Preconditions:** A report with multiple data types exists.
**Steps:**
1. Select the data: the data (the data of the report, the type, the date) — verify the data is the content.
2. Verify the data shows the type and the date.
3. Export with a data-type selection — verify only the selected data types are included.
**Expected Result:** The data is selected — the data of the report, the type, and the date are the payload.
**Priority:** High

### TC-SA-23-03-028 — Export format: the format (the format of the export, e.g., the CSV, the JSON); the format is the structure
**Type:** Edge
**Covers:** 3.4 → Export format: the format (the format of the export, e.g., the CSV, the JSON)
**Preconditions:** A report with data containing special characters and unicode text (format-integrity edge) exists.
**Steps:**
1. Set the export format: the format (the format of the export, e.g., the CSV, the JSON) — verify the format is the structure.
2. Export in CSV — verify the file is valid CSV (no broken columns).
3. Export the same data in JSON — verify the file is valid, parseable JSON with the same data.
**Expected Result:** The export format is set — the format of the export (the CSV, the JSON) is the structure; both formats produce valid, parseable files.
**Priority:** High

### TC-SA-23-03-029 — Export status: the status (the completed, the in-progress, the failed); the status is the control
**Type:** Positive
**Covers:** 3.4 → Export status: the status (the completed, the in-progress, the failed); Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control
**Preconditions:** Analytics data exports with various statuses exist.
**Steps:**
1. View the export status: the status (the completed, the in-progress, the failed) — verify the export status is the state.
2. Start an export — verify it shows in-progress, then completed on success.
3. Verify a failed export shows failed with the reason.
**Expected Result:** The export status is shown — the completed, the in-progress, and the failed are the control.
**Priority:** High

### TC-SA-23-03-030 — Export count: the count (the count of the exports); the count is the measure
**Type:** Positive
**Covers:** 3.4 → Export count: the count (the count of the exports)
**Preconditions:** Multiple analytics data exports exist.
**Steps:**
1. View the export count: the count (the count of the exports) — verify the export count is the measure.
2. Verify the count matches the actual number of exports.
3. Complete a new export — verify the count increments.
**Expected Result:** The export count is shown — the count of the exports is the measure.
**Priority:** High

### TC-SA-23-03-031 — Export view: the view (the exports, the reports, the data, the dates); the transfer is managed
**Type:** Positive
**Covers:** 3.4 → Export view: the view (the exports, the reports, the data, the dates); Rule: the analytics data is exported (the exports, the reports, the data, the dates); the transfer is managed
**Preconditions:** Multiple analytics data exports exist.
**Steps:**
1. View the exports: the view (the exports, the reports, the data, the dates) — verify the analytics data is exported.
2. Verify each export shows the report, the data, and the date.
3. Verify the transfer is managed (view, select, export, verify).
**Expected Result:** The exports are viewed — the exports, the reports, the data, and the dates are visible; the transfer is managed.
**Priority:** High

### TC-SA-23-03-032 — Analytics data export is audit-logged with the export, report, and timestamp
**Type:** Positive
**Covers:** 3.4 → Audit logging of the analytics data export; Rule: analytics data export is audit-logged with the export, report, and timestamp
**Preconditions:** Super Admin has exported analytics data.
**Steps:**
1. Open the audit trail and filter by "analytics data export".
2. Verify entries show the export, the report, and the timestamp.
**Expected Result:** The analytics data export is audit-logged with the export, report, and timestamp.
**Priority:** Critical

## 3.5 Export Data for Institute Records

### TC-SA-23-03-033 — Export: the export (the export, the institute, the data, the date); the export is the move
**Type:** Positive
**Covers:** 3.5 → Export: the export (the export, the institute, the data, the date); Rule: the export is the transfer (the export, the institute, the data, the date); the export is the move
**Preconditions:** Super Admin is logged in; institutes with records exist.
**Steps:**
1. Open Backup & Data Export → Data Export → Export Data for Institute Records.
2. Export the data for the institute records: the export (the export, the institute, the data, the date) — verify the export is the transfer.
3. Verify the export shows the institute, the data, and the date.
4. Verify the exported file contains exactly the selected institute's records.
**Expected Result:** The institute data is exported — the export, the institute, the data, and the date are the move.
**Priority:** Critical

### TC-SA-23-03-034 — Institute: the institute (the institute, the name, the export); the institute is the client
**Type:** Positive
**Covers:** 3.5 → Institute: the institute (the institute, the name, the export); Rule: the institute is the organization (the institute, the name, the export); the institute is the client
**Preconditions:** Multiple institutes exist.
**Steps:**
1. Select the institute: the institute (the institute, the name, the export) — verify the institute is the organization.
2. Verify the institute shows the name and the export.
3. Verify the export is scoped to exactly the selected institute (no other institute's records leak into the file).
**Expected Result:** The institute is selected — the institute, the name, and the export are the client; exports never leak across institutes.
**Priority:** High

### TC-SA-23-03-035 — Data: the data (the data of the institute, the type, the date); the data is the payload
**Type:** Positive
**Covers:** 3.5 → Data: the data (the data of the institute, the type, the date); Rule: the data is the content (the data of the institute, the type, the date); the data is the payload
**Preconditions:** An institute with multiple data types exists.
**Steps:**
1. Select the data: the data (the data of the institute, the type, the date) — verify the data is the content.
2. Verify the data shows the type and the date.
3. Export with a data-type selection — verify only the selected data types are included.
**Expected Result:** The data is selected — the data of the institute, the type, and the date are the payload.
**Priority:** High

### TC-SA-23-03-036 — Export format: the format (the format of the export, e.g., the CSV, the JSON); the format is the structure
**Type:** Edge
**Covers:** 3.5 → Export format: the format (the format of the export, e.g., the CSV, the JSON)
**Preconditions:** Institute records with special characters and unicode text (format-integrity edge) exist.
**Steps:**
1. Set the export format: the format (the format of the export, e.g., the CSV, the JSON) — verify the format is the structure.
2. Export in CSV — verify the file is valid CSV (no broken columns).
3. Export the same data in JSON — verify the file is valid, parseable JSON with the same data.
**Expected Result:** The export format is set — the format of the export (the CSV, the JSON) is the structure; both formats produce valid, parseable files.
**Priority:** High

### TC-SA-23-03-037 — Export status: the status (the completed, the in-progress, the failed); the status is the control
**Type:** Positive
**Covers:** 3.5 → Export status: the status (the completed, the in-progress, the failed); Rule: the export status is the state (the completed, the in-progress, the failed); the status is the control
**Preconditions:** Institute data exports with various statuses exist.
**Steps:**
1. View the export status: the status (the completed, the in-progress, the failed) — verify the export status is the state.
2. Start an export — verify it shows in-progress, then completed on success.
3. Verify a failed export shows failed with the reason.
**Expected Result:** The export status is shown — the completed, the in-progress, and the failed are the control.
**Priority:** High

### TC-SA-23-03-038 — Export count: the count (the count of the exports); the count is the measure
**Type:** Positive
**Covers:** 3.5 → Export count: the count (the count of the exports)
**Preconditions:** Multiple institute data exports exist.
**Steps:**
1. View the export count: the count (the count of the exports) — verify the export count is the measure.
2. Verify the count matches the actual number of exports.
3. Complete a new export — verify the count increments.
**Expected Result:** The export count is shown — the count of the exports is the measure.
**Priority:** High

### TC-SA-23-03-039 — Export view: the view (the exports, the institutes, the data, the dates); the transfer is managed
**Type:** Positive
**Covers:** 3.5 → Export view: the view (the exports, the institutes, the data, the dates); Rule: the institute has the records (the exports, the institutes, the data, the dates); the transfer is managed
**Preconditions:** Multiple institute data exports exist.
**Steps:**
1. View the exports: the view (the exports, the institutes, the data, the dates) — verify the institute has the records.
2. Verify each export shows the institute, the data, and the date.
3. Verify the transfer is managed (view, select, export, verify).
**Expected Result:** The exports are viewed — the exports, the institutes, the data, and the dates are visible; the transfer is managed.
**Priority:** High

### TC-SA-23-03-040 — Institute data export is audit-logged with the export, institute, and timestamp
**Type:** Positive
**Covers:** 3.5 → Audit logging of the institute data export; Rule: institute data export is audit-logged with the export, institute, and timestamp
**Preconditions:** Super Admin has exported institute data.
**Steps:**
1. Open the audit trail and filter by "institute data export".
2. Verify entries show the export, the institute, and the timestamp.
**Expected Result:** The institute data export is audit-logged with the export, institute, and timestamp.
**Priority:** Critical
