# 2. Tax Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: tax_management.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 |
|---------|--------------------|----------|
| 2.1 Tax Calculation (GST, VAT) | Tax type: the type (the GST, the VAT) | TC-SA-16-02-001 |
| 2.1 Tax Calculation (GST, VAT) | Tax rate: the rate (the rate of the tax, e.g., the 15% GST) | TC-SA-16-02-002 |
| 2.1 Tax Calculation (GST, VAT) | Tax region: the region (the region of the tax, e.g., the country, the state) | TC-SA-16-02-003 |
| 2.1 Tax Calculation (GST, VAT) | Tax calculation: the calculation (the tax is calculated on the transaction, the amount) | TC-SA-16-02-004 |
| 2.1 Tax Calculation (GST, VAT) | Tax configuration: the configuration (the tax, the rate, the region, the amount) | TC-SA-16-02-005 |
| 2.1 Tax Calculation (GST, VAT) | Tax record: the record (the transaction, the tax, the rate, the amount, the date) | TC-SA-16-02-006 |
| 2.1 Tax Calculation (GST, VAT) | Tax view: the view (the taxes, the regions, the period) | TC-SA-16-02-007 |
| 2.1 Tax Calculation (GST, VAT) | Audit logging of the tax calculation and configuration | TC-SA-16-02-008 |
| 2.1 Tax Calculation (GST, VAT) | Rule: the tax type is the tax (the GST, the VAT); the type is the kind | TC-SA-16-02-001 |
| 2.1 Tax Calculation (GST, VAT) | Rule: the tax rate is the percentage (the rate of the tax, e.g., the 15% GST); the rate is the measure | TC-SA-16-02-002 |
| 2.1 Tax Calculation (GST, VAT) | Rule: the tax region is the scope (the region of the tax, e.g., the country, the state); the region is the control | TC-SA-16-02-003 |
| 2.1 Tax Calculation (GST, VAT) | Rule: a tax change (the rate, the region updated) is recorded (the new rate, the new region, the time); it is auditable | TC-SA-16-02-008 |
| 2.1 Tax Calculation (GST, VAT) | Rule: the taxes are visible (the taxes, the regions, the period); the calculation is managed | TC-SA-16-02-007 |
| 2.1 Tax Calculation (GST, VAT) | Rule: tax calculation and configuration are audit-logged with the tax, rate, and timestamp | TC-SA-16-02-008 |
| 2.2 Tax Reporting | Tax report: the report (the report, the tax, the amount, the period, the region) | TC-SA-16-02-009 |
| 2.2 Tax Reporting | Report generation: the generation (the report is generated, the tax, the amount, the period) | TC-SA-16-02-010 |
| 2.2 Tax Reporting | Report period: the period (the period of the report, e.g., the monthly, the quarterly) | TC-SA-16-02-011 |
| 2.2 Tax Reporting | Report region: the region (the region of the report, e.g., the country, the state) | TC-SA-16-02-012 |
| 2.2 Tax Reporting | Report export: the export (the report, the format, the period) | TC-SA-16-02-013 |
| 2.2 Tax Reporting | Report record: the record (the report, the tax, the amount, the period, the region) | TC-SA-16-02-014 |
| 2.2 Tax Reporting | Report view: the view (the reports, the periods, the regions) | TC-SA-16-02-015 |
| 2.2 Tax Reporting | Audit logging of the tax report generation | TC-SA-16-02-016 |
| 2.2 Tax Reporting | Rule: the tax report is the document (the report, the tax, the amount, the period, the region); the report is the proof | TC-SA-16-02-009 |
| 2.2 Tax Reporting | Rule: the report generation is the creation (the report is generated, the tax, the amount, the period); the generation is the action | TC-SA-16-02-010 |
| 2.2 Tax Reporting | Rule: the report period is the scope (the period of the report, e.g., the monthly, the quarterly); the period is the control | TC-SA-16-02-011 |
| 2.2 Tax Reporting | Rule: the report region is the scope (the region of the report, e.g., the country, the state); the region is the control | TC-SA-16-02-012 |
| 2.2 Tax Reporting | Rule: the tax is visible (the tax, the amounts, the periods, the regions); the reporting is managed | TC-SA-16-02-015 |
| 2.2 Tax Reporting | Rule: tax report generation is audit-logged with the tax, period, and timestamp | TC-SA-16-02-016 |

## 2.1 Tax Calculation (GST, VAT)

### TC-SA-16-02-001 — Tax type: the type (the GST, the VAT); the type is the kind
**Type:** Positive
**Covers:** 2.1 → Tax type: the type (the GST, the VAT); Rule: the tax type is the tax (the GST, the VAT); the type is the kind
**Preconditions:** Super Admin is logged in.
**Steps:**
1. Configure the tax calculation: the tax (the GST, the VAT), the rate (the rate of the tax, e.g., the 15% GST), the region (the region of the tax, e.g., the country, the state), and the amount (the amount of the tax).
2. Set the tax type: the type (the GST, the VAT) — verify the type is the tax.
3. Verify both GST and VAT can be configured as tax types.
**Expected Result:** The tax type is set — the GST or the VAT is the kind of tax.
**Priority:** Critical

### TC-SA-16-02-002 — Tax rate: the rate (the rate of the tax, e.g., the 15% GST); the rate is the measure
**Type:** Edge
**Covers:** 2.1 → Tax rate: the rate (the rate of the tax, e.g., the 15% GST); Rule: the tax rate is the percentage (the rate of the tax, e.g., the 15% GST); the rate is the measure
**Preconditions:** Super Admin is logged in.
**Steps:**
1. Set the tax rate: the rate (the rate of the tax, e.g., the 15% GST) — verify the rate is the percentage.
2. Set a rate of 0% — verify it is accepted (tax-exempt region).
3. Set a rate above 100% — verify it is rejected with a validation error.
**Expected Result:** The tax rate is set — the rate of the tax is the measure; invalid rates are rejected.
**Priority:** Critical

### TC-SA-16-02-003 — Tax region: the region (the region of the tax, e.g., the country, the state); the region is the control
**Type:** Positive
**Covers:** 2.1 → Tax region: the region (the region of the tax, e.g., the country, the state); Rule: the tax region is the scope (the region of the tax, e.g., the country, the state); the region is the control
**Preconditions:** Super Admin is logged in.
**Steps:**
1. Set the tax region: the region (the region of the tax, e.g., the country, the state) — verify the region is the scope.
2. Configure different tax rates for different regions (e.g., country-level GST, state-level VAT).
3. Verify the region is the control and the rates are applied per region.
**Expected Result:** The tax region is set — the region of the tax is the control, with rates applied per region.
**Priority:** Critical

### TC-SA-16-02-004 — Tax calculation: the calculation (the tax is calculated on the transaction, the amount); the calculation is the charge
**Type:** Positive
**Covers:** 2.1 → Tax calculation: the calculation (the tax is calculated on the transaction, the amount)
**Preconditions:** Tax is configured (the type, the rate, the region); a transaction is made.
**Steps:**
1. A transaction is made — verify the tax is calculated (the tax is applied, the amount is charged, the tax is recorded).
2. Verify the tax amount is correct per the configured rate (e.g., 15% GST on the transaction amount).
3. Verify the calculation is recorded.
**Expected Result:** The tax calculation works — the tax is calculated on the transaction and the amount is charged.
**Priority:** Critical

### TC-SA-16-02-005 — Tax configuration: the configuration (the tax, the rate, the region, the amount); the calculation is explicit
**Type:** Positive
**Covers:** 2.1 → Tax configuration: the configuration (the tax, the rate, the region, the amount)
**Preconditions:** Super Admin is logged in.
**Steps:**
1. Configure the tax: the configuration (the tax, the rate, the region, the amount).
2. Save; verify the tax calculation is live and the tax is applied on the transactions.
3. View the tax configuration — verify the tax, the rate, the region, and the amount are shown.
**Expected Result:** The tax configuration is saved — the tax, the rate, the region, and the amount are configured and live.
**Priority:** Critical

### TC-SA-16-02-006 — Tax record: the record (the transaction, the tax, the rate, the amount, the date); the record is the proof
**Type:** Positive
**Covers:** 2.1 → Tax record: the record (the transaction, the tax, the rate, the amount, the date)
**Preconditions:** A transaction with tax has been made.
**Steps:**
1. Open the tax record.
2. Verify it shows the transaction, the tax, the rate, the amount, and the date.
**Expected Result:** The tax is recorded — the transaction, the tax, the rate, the amount, and the date are shown.
**Priority:** High

### TC-SA-16-02-007 — Tax view: the view (the taxes, the regions, the period); the calculation is managed
**Type:** Positive
**Covers:** 2.1 → Tax view: the view (the taxes, the regions, the period); Rule: the taxes are visible (the taxes, the regions, the period); the calculation is managed
**Preconditions:** Taxes have been calculated across multiple regions and periods.
**Steps:**
1. View the taxes: the taxes, the regions, the period — verify the taxes are visible.
2. Verify the view is complete for the period.
**Expected Result:** The tax view works — the taxes for the regions and the period are visible.
**Priority:** High

### TC-SA-16-02-008 — Tax calculation and configuration are audit-logged with the tax, rate, and timestamp
**Type:** Positive
**Covers:** 2.1 → Audit logging of the tax calculation and configuration; Rule: a tax change (the rate, the region updated) is recorded (the new rate, the new region, the time); it is auditable; Rule: tax calculation and configuration are audit-logged with the tax, rate, and timestamp
**Preconditions:** Tax has been configured, changed, and calculated.
**Steps:**
1. Open the audit trail and filter by "tax".
2. Verify entries show the tax, the rate, and the timestamp for the calculation and configuration.
3. For a tax change (the rate, the region updated), verify the change is recorded (the new rate, the new region, the time) and is auditable.
**Expected Result:** The tax calculation and configuration are audit-logged with the tax, rate, and timestamp.
**Priority:** Critical

## 2.2 Tax Reporting

### TC-SA-16-02-009 — Tax report: the report (the report, the tax, the amount, the period, the region); the report is the proof
**Type:** Positive
**Covers:** 2.2 → Tax report: the report (the report, the tax, the amount, the period, the region); Rule: the tax report is the document (the report, the tax, the amount, the period, the region); the report is the proof
**Preconditions:** Taxes have been calculated across a period.
**Steps:**
1. Generate the tax report: the report (the report, the tax, the amount, the period, the region).
2. View the report — verify the report shows the tax, the amount, the period, and the region.
3. Verify the report is the document and is the proof.
**Expected Result:** The tax report is shown — the report, the tax, the amount, the period, and the region are visible.
**Priority:** Critical

### TC-SA-16-02-010 — Report generation: the generation (the report is generated, the tax, the amount, the period); the generation is the action
**Type:** Edge
**Covers:** 2.2 → Report generation: the generation (the report is generated, the tax, the amount, the period); Rule: the report generation is the creation (the report is generated, the tax, the amount, the period); the generation is the action
**Preconditions:** Taxes exist for a period; a period with no tax transactions also exists.
**Steps:**
1. Generate the report: the generation (the report is generated, the tax, the amount, the period) — verify the generation is the action.
2. Verify the report is generated with the tax and the amount for the period.
3. Generate a report for a period with no tax transactions — verify an empty report is generated (no error).
**Expected Result:** The report generation works — the report is generated for the period; an empty period is handled.
**Priority:** High

### TC-SA-16-02-011 — Report period: the period (the period of the report, e.g., the monthly, the quarterly); the period is the control
**Type:** Positive
**Covers:** 2.2 → Report period: the period (the period of the report, e.g., the monthly, the quarterly); Rule: the report period is the scope (the period of the report, e.g., the monthly, the quarterly); the period is the control
**Preconditions:** Taxes exist across monthly and quarterly periods.
**Steps:**
1. Set the report period: the period (the period of the report, e.g., the monthly, the quarterly) — verify the period is the scope.
2. Generate a monthly report and a quarterly report — verify each covers the correct period.
**Expected Result:** The report period is set — the period of the report (the monthly, the quarterly) is the control.
**Priority:** High

### TC-SA-16-02-012 — Report region: the region (the region of the report, e.g., the country, the state); the region is the control
**Type:** Negative
**Covers:** 2.2 → Report region: the region (the region of the report, e.g., the country, the state); Rule: the report region is the scope (the region of the report, e.g., the country, the state); the region is the control
**Preconditions:** Taxes exist across multiple regions.
**Steps:**
1. Set the report region: the region (the region of the report, e.g., the country, the state) — verify the region is the scope.
2. Generate a report for a specific region — verify only that region's tax is included.
3. Generate a report for a region with no tax — verify an empty result is shown (no error).
**Expected Result:** The report region is set — the region of the report is the control; a region with no tax is handled.
**Priority:** High

### TC-SA-16-02-013 — Report export: the export (the report, the format, the period); the export is the record
**Type:** Positive
**Covers:** 2.2 → Report export: the export (the report, the format, the period)
**Preconditions:** A tax report has been generated.
**Steps:**
1. Export the report: the export (the report, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the report.
**Expected Result:** The report is exported — the report in the selected format for the period is generated.
**Priority:** Medium

### TC-SA-16-02-014 — Report record: the record (the report, the tax, the amount, the period, the region); the record is the proof
**Type:** Positive
**Covers:** 2.2 → Report record: the record (the report, the tax, the amount, the period, the region)
**Preconditions:** A tax report has been generated.
**Steps:**
1. Open the report record.
2. Verify it shows the report, the tax, the amount, the period, and the region.
**Expected Result:** The report is recorded — the report, the tax, the amount, the period, and the region are shown.
**Priority:** High

### TC-SA-16-02-015 — Report view: the view (the reports, the periods, the regions); the reporting is managed
**Type:** Positive
**Covers:** 2.2 → Report view: the view (the reports, the periods, the regions); Rule: the tax is visible (the tax, the amounts, the periods, the regions); the reporting is managed
**Preconditions:** Tax reports exist across multiple periods and regions.
**Steps:**
1. View the reports: the reports, the periods, the regions — verify the tax is visible.
2. Verify the view is complete for the periods and regions.
**Expected Result:** The report view works — the reports for the periods and the regions are visible.
**Priority:** High

### TC-SA-16-02-016 — Tax report generation is audit-logged with the tax, period, and timestamp
**Type:** Positive
**Covers:** 2.2 → Audit logging of the tax report generation; Rule: tax report generation is audit-logged with the tax, period, and timestamp
**Preconditions:** Tax reports have been generated.
**Steps:**
1. Open the audit trail and filter by "tax report".
2. Verify entries show the tax, the period, and the timestamp.
**Expected Result:** The tax report generation is audit-logged with the tax, period, and timestamp.
**Priority:** Critical
