# 1. Financial Dashboard — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: financial_dashboard.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 |
|---------|--------------------|----------|
| 1.1 Total Revenue Overview | Total revenue: the revenue (the total revenue, the amount, the period) | TC-SA-17-01-001 |
| 1.1 Total Revenue Overview | Revenue amount: the amount (the amount of the revenue, the currency) | TC-SA-17-01-002 |
| 1.1 Total Revenue Overview | Revenue period: the period (the period of the revenue, e.g., the monthly, the quarterly, the annual) | TC-SA-17-01-003 |
| 1.1 Total Revenue Overview | Revenue source: the source (the source of the revenue, e.g., the subscription, the one-time) | TC-SA-17-01-004 |
| 1.1 Total Revenue Overview | Revenue trend: the trend (the trend of the revenue, the period, the change) | TC-SA-17-01-005 |
| 1.1 Total Revenue Overview | Revenue comparison: the comparison (the comparison of the revenue, the periods) | TC-SA-17-01-006 |
| 1.1 Total Revenue Overview | Dashboard view: the view (the revenue, the amount, the period, the source) | TC-SA-17-01-007 |
| 1.1 Total Revenue Overview | Audit logging of the revenue overview viewing | TC-SA-17-01-008 |
| 1.1 Total Revenue Overview | Rule: the total revenue is the summary (the total revenue, the amount, the period); the revenue is the value | TC-SA-17-01-001 |
| 1.1 Total Revenue Overview | Rule: the revenue amount is the measure (the amount of the revenue, the currency); the amount is the value | TC-SA-17-01-002 |
| 1.1 Total Revenue Overview | Rule: the revenue period is the scope (the period of the revenue, e.g., the monthly, the quarterly, the annual); the period is the control | TC-SA-17-01-003 |
| 1.1 Total Revenue Overview | Rule: the revenue trend is the direction (the trend of the revenue, the period, the change); the trend is the insight | TC-SA-17-01-005 |
| 1.1 Total Revenue Overview | Rule: the revenue is visible (the revenue, the amount, the period, the source); the viewing is managed | TC-SA-17-01-007 |
| 1.1 Total Revenue Overview | Rule: revenue overview viewing is audit-logged with the revenue, period, and timestamp | TC-SA-17-01-008 |
| 1.2 Active Subscriptions and Revenue | Active subscription: the subscription (the active subscription, the user, the plan, the amount, the date) | TC-SA-17-01-009 |
| 1.2 Active Subscriptions and Revenue | Subscription count: the count (the count of the active subscriptions) | TC-SA-17-01-010 |
| 1.2 Active Subscriptions and Revenue | Subscription revenue: the revenue (the revenue of the active subscriptions, the amount, the period) | TC-SA-17-01-011 |
| 1.2 Active Subscriptions and Revenue | Subscription plan: the plan (the plan of the subscription, e.g., the monthly, the annual) | TC-SA-17-01-012 |
| 1.2 Active Subscriptions and Revenue | Subscription period: the period (the period of the subscription, e.g., the monthly, the quarterly) | TC-SA-17-01-013 |
| 1.2 Active Subscriptions and Revenue | Subscription view: the view (the subscriptions, the plans, the amounts, the period) | TC-SA-17-01-014 |
| 1.2 Active Subscriptions and Revenue | Subscription export: the export (the subscriptions, the format, the period) | TC-SA-17-01-015 |
| 1.2 Active Subscriptions and Revenue | Audit logging of the active subscription viewing | TC-SA-17-01-016 |
| 1.2 Active Subscriptions and Revenue | Rule: the active subscription is the ongoing (the active subscription, the user, the plan, the amount, the date); the subscription is the state | TC-SA-17-01-009 |
| 1.2 Active Subscriptions and Revenue | Rule: the subscription count is the measure (the count of the active subscriptions); the count is the volume | TC-SA-17-01-010 |
| 1.2 Active Subscriptions and Revenue | Rule: the subscription revenue is the value (the revenue of the active subscriptions, the amount, the period); the revenue is the income | TC-SA-17-01-011 |
| 1.2 Active Subscriptions and Revenue | Rule: the subscription plan is the tier (the plan of the subscription, e.g., the monthly, the annual); the plan is the level | TC-SA-17-01-012 |
| 1.2 Active Subscriptions and Revenue | Rule: the subscriptions are visible (the subscriptions, the plans, the amounts, the period); the viewing is managed | TC-SA-17-01-014 |
| 1.2 Active Subscriptions and Revenue | Rule: active subscription viewing is audit-logged with the subscription, period, and timestamp | TC-SA-17-01-016 |
| 1.3 Pending and Failed Payments | Pending payment: the payment (the pending payment, the user, the amount, the date) | TC-SA-17-01-017 |
| 1.3 Pending and Failed Payments | Failed payment: the payment (the failed payment, the user, the amount, the date, the reason) | TC-SA-17-01-018 |
| 1.3 Pending and Failed Payments | Payment count: the count (the count of the pending and failed payments) | TC-SA-17-01-019 |
| 1.3 Pending and Failed Payments | Payment amount: the amount (the amount of the pending and failed payments) | TC-SA-17-01-020 |
| 1.3 Pending and Failed Payments | Payment reason: the reason (the reason for the failed payment, e.g., the card declined) | TC-SA-17-01-021 |
| 1.3 Pending and Failed Payments | Payment view: the view (the payments, the users, the amounts, the period) | TC-SA-17-01-022 |
| 1.3 Pending and Failed Payments | Payment export: the export (the payments, the format, the period) | TC-SA-17-01-023 |
| 1.3 Pending and Failed Payments | Audit logging of the pending and failed payment viewing | TC-SA-17-01-024 |
| 1.3 Pending and Failed Payments | Rule: the pending payment is the in-progress (the pending payment, the user, the amount, the date); the payment is the state | TC-SA-17-01-017 |
| 1.3 Pending and Failed Payments | Rule: the failed payment is the error (the failed payment, the user, the amount, the date, the reason); the payment is the state | TC-SA-17-01-018 |
| 1.3 Pending and Failed Payments | Rule: the payment count is the measure (the count of the pending and failed payments); the count is the volume | TC-SA-17-01-019 |
| 1.3 Pending and Failed Payments | Rule: the payment reason is the cause (the reason for the failed payment, e.g., the card declined); the reason is the explanation | TC-SA-17-01-021 |
| 1.3 Pending and Failed Payments | Rule: the payments are visible (the payments, the users, the amounts, the period); the viewing is managed | TC-SA-17-01-022 |
| 1.3 Pending and Failed Payments | Rule: pending and failed payment viewing is audit-logged with the payment, period, and timestamp | TC-SA-17-01-024 |
| 1.4 Refunds Processed | Refund: the refund (the refund, the user, the amount, the date, the reason) | TC-SA-17-01-025 |
| 1.4 Refunds Processed | Refund count: the count (the count of the refunds) | TC-SA-17-01-026 |
| 1.4 Refunds Processed | Refund amount: the amount (the amount of the refunds) | TC-SA-17-01-027 |
| 1.4 Refunds Processed | Refund reason: the reason (the reason for the refund, e.g., the cancellation) | TC-SA-17-01-028 |
| 1.4 Refunds Processed | Refund period: the period (the period of the refunds, e.g., the monthly, the quarterly) | TC-SA-17-01-029 |
| 1.4 Refunds Processed | Refund view: the view (the refunds, the users, the amounts, the period) | TC-SA-17-01-030 |
| 1.4 Refunds Processed | Refund export: the export (the refunds, the format, the period) | TC-SA-17-01-031 |
| 1.4 Refunds Processed | Audit logging of the refund viewing | TC-SA-17-01-032 |
| 1.4 Refunds Processed | Rule: the refund is the return (the refund, the user, the amount, the date, the reason); the refund is the reversal | TC-SA-17-01-025 |
| 1.4 Refunds Processed | Rule: the refund count is the measure (the count of the refunds); the count is the volume | TC-SA-17-01-026 |
| 1.4 Refunds Processed | Rule: the refund amount is the value (the amount of the refunds); the amount is the measure | TC-SA-17-01-027 |
| 1.4 Refunds Processed | Rule: the refund reason is the cause (the reason for the refund, e.g., the cancellation); the reason is the explanation | TC-SA-17-01-028 |
| 1.4 Refunds Processed | Rule: the refunds are visible (the refunds, the users, the amounts, the period); the viewing is managed | TC-SA-17-01-030 |
| 1.4 Refunds Processed | Rule: refund viewing is audit-logged with the refund, period, and timestamp | TC-SA-17-01-032 |

## 1.1 Total Revenue Overview

### TC-SA-17-01-001 — Total revenue: the revenue (the total revenue, the amount, the period); the revenue is the value
**Type:** Positive
**Covers:** 1.1 → Total revenue: the revenue (the total revenue, the amount, the period); Rule: the total revenue is the summary (the total revenue, the amount, the period); the revenue is the value
**Preconditions:** Super Admin is logged in; revenue exists for the current period.
**Steps:**
1. Open the Financial Dashboard.
2. View the total revenue: the revenue (the total revenue, the amount, the period) — verify the total revenue is the summary.
3. Verify the total revenue amount matches the sum of all revenue for the period.
**Expected Result:** The total revenue is shown — the total revenue, the amount, and the period are the value.
**Priority:** Critical

### TC-SA-17-01-002 — Revenue amount: the amount (the amount of the revenue, the currency); the amount is the value
**Type:** Positive
**Covers:** 1.1 → Revenue amount: the amount (the amount of the revenue, the currency); Rule: the revenue amount is the measure (the amount of the revenue, the currency); the amount is the value
**Preconditions:** Revenue exists in multiple currencies.
**Steps:**
1. View the revenue amount: the amount (the amount of the revenue, the currency) — verify the amount is the measure.
2. Verify the amount is shown with the correct currency.
3. Verify the amount is accurate for the period.
**Expected Result:** The revenue amount is shown — the amount of the revenue and the currency are the value.
**Priority:** High

### TC-SA-17-01-003 — Revenue period: the period (the period of the revenue, e.g., the monthly, the quarterly, the annual); the period is the control
**Type:** Positive
**Covers:** 1.1 → Revenue period: the period (the period of the revenue, e.g., the monthly, the quarterly, the annual); Rule: the revenue period is the scope (the period of the revenue, e.g., the monthly, the quarterly, the annual); the period is the control
**Preconditions:** Revenue exists across monthly, quarterly, and annual periods.
**Steps:**
1. Set the revenue period: the period (the period of the revenue, e.g., the monthly, the quarterly, the annual) — verify the period is the scope.
2. Switch between monthly, quarterly, and annual — verify the revenue updates for each period.
3. Verify each period covers the correct date range.
**Expected Result:** The revenue period is set — the period of the revenue (the monthly, the quarterly, the annual) is the control.
**Priority:** High

### TC-SA-17-01-004 — Revenue source: the source (the source of the revenue, e.g., the subscription, the one-time); the source is the origin
**Type:** Positive
**Covers:** 1.1 → Revenue source: the source (the source of the revenue, e.g., the subscription, the one-time)
**Preconditions:** Revenue exists from both subscription and one-time sources.
**Steps:**
1. View the revenue source: the source (the source of the revenue, e.g., the subscription, the one-time) — verify the source is the origin.
2. Verify the revenue is broken down by source (the subscription, the one-time).
3. Verify the source breakdown sums to the total revenue.
**Expected Result:** The revenue source is shown — the source of the revenue (the subscription, the one-time) is the origin.
**Priority:** High

### TC-SA-17-01-005 — Revenue trend: the trend (the trend of the revenue, the period, the change); the trend is the insight
**Type:** Positive
**Covers:** 1.1 → Revenue trend: the trend (the trend of the revenue, the period, the change); Rule: the revenue trend is the direction (the trend of the revenue, the period, the change); the trend is the insight
**Preconditions:** Revenue exists across multiple periods with an upward or downward trend.
**Steps:**
1. View the revenue trend: the trend (the trend of the revenue, the period, the change) — verify the trend is the direction.
2. Verify the trend shows the change over the periods.
3. Verify the trend direction (increase/decrease) matches the actual data.
**Expected Result:** The revenue trend is shown — the trend of the revenue, the period, and the change are the insight.
**Priority:** Medium

### TC-SA-17-01-006 — Revenue comparison: the comparison (the comparison of the revenue, the periods); the comparison is the analysis
**Type:** Positive
**Covers:** 1.1 → Revenue comparison: the comparison (the comparison of the revenue, the periods)
**Preconditions:** Revenue exists across multiple periods.
**Steps:**
1. Compare the revenue: the comparison (the comparison of the revenue, the periods) — verify the comparison is the analysis.
2. Verify the comparison shows the revenue across the selected periods.
3. Verify the comparison values are accurate.
**Expected Result:** The revenue comparison works — the comparison of the revenue across the periods is the analysis.
**Priority:** Medium

### TC-SA-17-01-007 — Dashboard view: the view (the revenue, the amount, the period, the source); the viewing is managed
**Type:** Positive
**Covers:** 1.1 → Dashboard view: the view (the revenue, the amount, the period, the source); Rule: the revenue is visible (the revenue, the amount, the period, the source); the viewing is managed
**Preconditions:** Revenue exists for the current period.
**Steps:**
1. View the dashboard: the view (the revenue, the amount, the period, the source) — verify the revenue is visible.
2. Verify the view shows the revenue, the amount, the period, and the source.
3. Verify the overview is complete at a glance.
**Expected Result:** The dashboard view works — the revenue, the amount, the period, and the source are visible.
**Priority:** High

### TC-SA-17-01-008 — Revenue overview viewing is audit-logged with the revenue, period, and timestamp
**Type:** Positive
**Covers:** 1.1 → Audit logging of the revenue overview viewing; Rule: revenue overview viewing is audit-logged with the revenue, period, and timestamp
**Preconditions:** Super Admin has viewed the revenue overview.
**Steps:**
1. Open the audit trail and filter by "revenue overview".
2. Verify entries show the revenue, the period, and the timestamp.
**Expected Result:** The revenue overview viewing is audit-logged with the revenue, period, and timestamp.
**Priority:** Critical

## 1.2 Active Subscriptions and Revenue

### TC-SA-17-01-009 — Active subscription: the subscription (the active subscription, the user, the plan, the amount, the date); the subscription is the state
**Type:** Positive
**Covers:** 1.2 → Active subscription: the subscription (the active subscription, the user, the plan, the amount, the date); Rule: the active subscription is the ongoing (the active subscription, the user, the plan, the amount, the date); the subscription is the state
**Preconditions:** Active subscriptions exist for multiple users and plans.
**Steps:**
1. View the active subscriptions: the subscription (the active subscription, the user, the plan, the amount, the date) — verify the subscription is the ongoing.
2. Verify each active subscription shows the user, the plan, the amount, and the date.
3. Verify only active subscriptions are shown (no lapsed or expiring).
**Expected Result:** The active subscriptions are shown — the active subscription, the user, the plan, the amount, and the date are the state.
**Priority:** Critical

### TC-SA-17-01-010 — Subscription count: the count (the count of the active subscriptions); the count is the volume
**Type:** Positive
**Covers:** 1.2 → Subscription count: the count (the count of the active subscriptions); Rule: the subscription count is the measure (the count of the active subscriptions); the count is the volume
**Preconditions:** Active subscriptions exist.
**Steps:**
1. View the subscription count: the count (the count of the active subscriptions) — verify the count is the measure.
2. Verify the count matches the actual number of active subscriptions.
**Expected Result:** The subscription count is shown — the count of the active subscriptions is the volume.
**Priority:** High

### TC-SA-17-01-011 — Subscription revenue: the revenue (the revenue of the active subscriptions, the amount, the period); the revenue is the income
**Type:** Positive
**Covers:** 1.2 → Subscription revenue: the revenue (the revenue of the active subscriptions, the amount, the period); Rule: the subscription revenue is the value (the revenue of the active subscriptions, the amount, the period); the revenue is the income
**Preconditions:** Active subscriptions exist with revenue.
**Steps:**
1. View the subscription revenue: the revenue (the revenue of the active subscriptions, the amount, the period) — verify the revenue is the value.
2. Verify the revenue amount matches the sum of the active subscriptions' amounts.
**Expected Result:** The subscription revenue is shown — the revenue of the active subscriptions, the amount, and the period are the income.
**Priority:** High

### TC-SA-17-01-012 — Subscription plan: the plan (the plan of the subscription, e.g., the monthly, the annual); the plan is the level
**Type:** Positive
**Covers:** 1.2 → Subscription plan: the plan (the plan of the subscription, e.g., the monthly, the annual); Rule: the subscription plan is the tier (the plan of the subscription, e.g., the monthly, the annual); the plan is the level
**Preconditions:** Active subscriptions exist across multiple plans.
**Steps:**
1. View the subscription plans: the plan (the plan of the subscription, e.g., the monthly, the annual) — verify the plan is the tier.
2. Verify the subscriptions are grouped or labeled by plan.
3. Verify each plan shows the correct subscriptions.
**Expected Result:** The subscription plan is shown — the plan of the subscription (the monthly, the annual) is the level.
**Priority:** Medium

### TC-SA-17-01-013 — Subscription period: the period (the period of the subscription, e.g., the monthly, the quarterly); the period is the scope
**Type:** Positive
**Covers:** 1.2 → Subscription period: the period (the period of the subscription, e.g., the monthly, the quarterly)
**Preconditions:** Active subscriptions exist across monthly and quarterly periods.
**Steps:**
1. Set the subscription period: the period (the period of the subscription, e.g., the monthly, the quarterly) — verify the period is the scope.
2. View the subscriptions for a monthly period and a quarterly period — verify each covers the correct period.
**Expected Result:** The subscription period is set — the period of the subscription (the monthly, the quarterly) is the scope.
**Priority:** High

### TC-SA-17-01-014 — Subscription view: the view (the subscriptions, the plans, the amounts, the period); the viewing is managed
**Type:** Positive
**Covers:** 1.2 → Subscription view: the view (the subscriptions, the plans, the amounts, the period); Rule: the subscriptions are visible (the subscriptions, the plans, the amounts, the period); the viewing is managed
**Preconditions:** Active subscriptions exist across a period.
**Steps:**
1. View the subscriptions: the view (the subscriptions, the plans, the amounts, the period) — verify the subscriptions are visible.
2. Verify the view is complete for the period.
**Expected Result:** The subscription view works — the subscriptions, the plans, the amounts, and the period are visible.
**Priority:** High

### TC-SA-17-01-015 — Subscription export: the export (the subscriptions, the format, the period); the export is the record
**Type:** Positive
**Covers:** 1.2 → Subscription export: the export (the subscriptions, the format, the period)
**Preconditions:** Active subscriptions exist for a period.
**Steps:**
1. Export the subscriptions: the export (the subscriptions, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the subscription view.
**Expected Result:** The subscriptions are exported — the subscriptions in the selected format for the period are generated.
**Priority:** Medium

### TC-SA-17-01-016 — Active subscription viewing is audit-logged with the subscription, period, and timestamp
**Type:** Positive
**Covers:** 1.2 → Audit logging of the active subscription viewing; Rule: active subscription viewing is audit-logged with the subscription, period, and timestamp
**Preconditions:** Super Admin has viewed the active subscriptions.
**Steps:**
1. Open the audit trail and filter by "active subscription".
2. Verify entries show the subscription, the period, and the timestamp.
**Expected Result:** The active subscription viewing is audit-logged with the subscription, period, and timestamp.
**Priority:** Critical

## 1.3 Pending and Failed Payments

### TC-SA-17-01-017 — Pending payment: the payment (the pending payment, the user, the amount, the date); the payment is the state
**Type:** Positive
**Covers:** 1.3 → Pending payment: the payment (the pending payment, the user, the amount, the date); Rule: the pending payment is the in-progress (the pending payment, the user, the amount, the date); the payment is the state
**Preconditions:** Pending payments exist.
**Steps:**
1. View the pending payments: the payment (the pending payment, the user, the amount, the date) — verify the payment is the in-progress.
2. Verify each pending payment shows the user, the amount, and the date.
3. Verify only pending payments are shown (no failed or completed).
**Expected Result:** The pending payments are shown — the pending payment, the user, the amount, and the date are the state.
**Priority:** Critical

### TC-SA-17-01-018 — Failed payment: the payment (the failed payment, the user, the amount, the date, the reason); the payment is the state
**Type:** Negative
**Covers:** 1.3 → Failed payment: the payment (the failed payment, the user, the amount, the date, the reason); Rule: the failed payment is the error (the failed payment, the user, the amount, the date, the reason); the payment is the state
**Preconditions:** Failed payments exist with reasons.
**Steps:**
1. View the failed payments: the payment (the failed payment, the user, the amount, the date, the reason) — verify the payment is the error.
2. Verify each failed payment shows the user, the amount, the date, and the reason.
3. Verify the reason is shown for each failed payment (e.g., the card declined).
**Expected Result:** The failed payments are shown — the failed payment, the user, the amount, the date, and the reason are the state.
**Priority:** Critical

### TC-SA-17-01-019 — Payment count: the count (the count of the pending and failed payments); the count is the volume
**Type:** Positive
**Covers:** 1.3 → Payment count: the count (the count of the pending and failed payments); Rule: the payment count is the measure (the count of the pending and failed payments); the count is the volume
**Preconditions:** Pending and failed payments exist.
**Steps:**
1. View the payment count: the count (the count of the pending and failed payments) — verify the count is the measure.
2. Verify the count matches the actual number of pending and failed payments.
**Expected Result:** The payment count is shown — the count of the pending and failed payments is the volume.
**Priority:** High

### TC-SA-17-01-020 — Payment amount: the amount (the amount of the pending and failed payments); the amount is the value
**Type:** Positive
**Covers:** 1.3 → Payment amount: the amount (the amount of the pending and failed payments)
**Preconditions:** Pending and failed payments exist.
**Steps:**
1. View the payment amount: the amount (the amount of the pending and failed payments) — verify the amount is the value.
2. Verify the amount matches the sum of the pending and failed payments' amounts.
**Expected Result:** The payment amount is shown — the amount of the pending and failed payments is the value.
**Priority:** High

### TC-SA-17-01-021 — Payment reason: the reason (the reason for the failed payment, e.g., the card declined); the reason is the explanation
**Type:** Edge
**Covers:** 1.3 → Payment reason: the reason (the reason for the failed payment, e.g., the card declined); Rule: the payment reason is the cause (the reason for the failed payment, e.g., the card declined); the reason is the explanation
**Preconditions:** Failed payments exist with different reasons (card declined, insufficient funds, expired card).
**Steps:**
1. View the payment reasons: the reason (the reason for the failed payment, e.g., the card declined) — verify the reason is the cause.
2. Verify each failed payment shows its specific reason.
3. Verify a failed payment with no reason recorded shows a default reason (no blank field).
**Expected Result:** The payment reason is shown — the reason for the failed payment (e.g., the card declined) is the explanation.
**Priority:** High

### TC-SA-17-01-022 — Payment view: the view (the payments, the users, the amounts, the period); the viewing is managed
**Type:** Positive
**Covers:** 1.3 → Payment view: the view (the payments, the users, the amounts, the period); Rule: the payments are visible (the payments, the users, the amounts, the period); the viewing is managed
**Preconditions:** Pending and failed payments exist across a period.
**Steps:**
1. View the payments: the view (the payments, the users, the amounts, the period) — verify the payments are visible.
2. Verify the view is complete for the period.
**Expected Result:** The payment view works — the payments, the users, the amounts, and the period are visible.
**Priority:** High

### TC-SA-17-01-023 — Payment export: the export (the payments, the format, the period); the export is the record
**Type:** Positive
**Covers:** 1.3 → Payment export: the export (the payments, the format, the period)
**Preconditions:** Pending and failed payments exist for a period.
**Steps:**
1. Export the payments: the export (the payments, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the payment view.
**Expected Result:** The payments are exported — the payments in the selected format for the period are generated.
**Priority:** Medium

### TC-SA-17-01-024 — Pending and failed payment viewing is audit-logged with the payment, period, and timestamp
**Type:** Positive
**Covers:** 1.3 → Audit logging of the pending and failed payment viewing; Rule: pending and failed payment viewing is audit-logged with the payment, period, and timestamp
**Preconditions:** Super Admin has viewed the pending and failed payments.
**Steps:**
1. Open the audit trail and filter by "payment viewing".
2. Verify entries show the payment, the period, and the timestamp.
**Expected Result:** The pending and failed payment viewing is audit-logged with the payment, period, and timestamp.
**Priority:** Critical

## 1.4 Refunds Processed

### TC-SA-17-01-025 — Refund: the refund (the refund, the user, the amount, the date, the reason); the refund is the reversal
**Type:** Positive
**Covers:** 1.4 → Refund: the refund (the refund, the user, the amount, the date, the reason); Rule: the refund is the return (the refund, the user, the amount, the date, the reason); the refund is the reversal
**Preconditions:** Refunds have been processed.
**Steps:**
1. View the refunds processed: the refund (the refund, the user, the amount, the date, the reason) — verify the refund is the return.
2. Verify each refund shows the user, the amount, the date, and the reason.
3. Verify the refund is the reversal of the original payment.
**Expected Result:** The refunds are shown — the refund, the user, the amount, the date, and the reason are the reversal.
**Priority:** Critical

### TC-SA-17-01-026 — Refund count: the count (the count of the refunds); the count is the volume
**Type:** Positive
**Covers:** 1.4 → Refund count: the count (the count of the refunds); Rule: the refund count is the measure (the count of the refunds); the count is the volume
**Preconditions:** Refunds have been processed.
**Steps:**
1. View the refund count: the count (the count of the refunds) — verify the count is the measure.
2. Verify the count matches the actual number of refunds.
**Expected Result:** The refund count is shown — the count of the refunds is the volume.
**Priority:** High

### TC-SA-17-01-027 — Refund amount: the amount (the amount of the refunds); the amount is the measure
**Type:** Positive
**Covers:** 1.4 → Refund amount: the amount (the amount of the refunds); Rule: the refund amount is the value (the amount of the refunds); the amount is the measure
**Preconditions:** Refunds have been processed.
**Steps:**
1. View the refund amount: the amount (the amount of the refunds) — verify the amount is the value.
2. Verify the amount matches the sum of the refunds' amounts.
**Expected Result:** The refund amount is shown — the amount of the refunds is the measure.
**Priority:** High

### TC-SA-17-01-028 — Refund reason: the reason (the reason for the refund, e.g., the cancellation); the reason is the explanation
**Type:** Edge
**Covers:** 1.4 → Refund reason: the reason (the reason for the refund, e.g., the cancellation); Rule: the refund reason is the cause (the reason for the refund, e.g., the cancellation); the reason is the explanation
**Preconditions:** Refunds have been processed with different reasons (cancellation, duplicate payment, service issue).
**Steps:**
1. View the refund reasons: the reason (the reason for the refund, e.g., the cancellation) — verify the reason is the cause.
2. Verify each refund shows its specific reason.
3. Verify a refund with no reason recorded shows a default reason (no blank field).
**Expected Result:** The refund reason is shown — the reason for the refund (e.g., the cancellation) is the explanation.
**Priority:** High

### TC-SA-17-01-029 — Refund period: the period (the period of the refunds, e.g., the monthly, the quarterly); the period is the scope
**Type:** Positive
**Covers:** 1.4 → Refund period: the period (the period of the refunds, e.g., the monthly, the quarterly)
**Preconditions:** Refunds have been processed across monthly and quarterly periods.
**Steps:**
1. Set the refund period: the period (the period of the refunds, e.g., the monthly, the quarterly) — verify the period is the scope.
2. View the refunds for a monthly period and a quarterly period — verify each covers the correct period.
**Expected Result:** The refund period is set — the period of the refunds (the monthly, the quarterly) is the scope.
**Priority:** High

### TC-SA-17-01-030 — Refund view: the view (the refunds, the users, the amounts, the period); the viewing is managed
**Type:** Positive
**Covers:** 1.4 → Refund view: the view (the refunds, the users, the amounts, the period); Rule: the refunds are visible (the refunds, the users, the amounts, the period); the viewing is managed
**Preconditions:** Refunds have been processed across a period.
**Steps:**
1. View the refunds: the view (the refunds, the users, the amounts, the period) — verify the refunds are visible.
2. Verify the view is complete for the period.
**Expected Result:** The refund view works — the refunds, the users, the amounts, and the period are visible.
**Priority:** High

### TC-SA-17-01-031 — Refund export: the export (the refunds, the format, the period); the export is the record
**Type:** Positive
**Covers:** 1.4 → Refund export: the export (the refunds, the format, the period)
**Preconditions:** Refunds have been processed for a period.
**Steps:**
1. Export the refunds: the export (the refunds, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the refund view.
**Expected Result:** The refunds are exported — the refunds in the selected format for the period are generated.
**Priority:** Medium

### TC-SA-17-01-032 — Refund viewing is audit-logged with the refund, period, and timestamp
**Type:** Positive
**Covers:** 1.4 → Audit logging of the refund viewing; Rule: refund viewing is audit-logged with the refund, period, and timestamp
**Preconditions:** Super Admin has viewed the refunds.
**Steps:**
1. Open the audit trail and filter by "refund viewing".
2. Verify entries show the refund, the period, and the timestamp.
**Expected Result:** The refund viewing is audit-logged with the refund, period, and timestamp.
**Priority:** Critical
