# 5. Multi-Currency Support — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: multi_currency_support.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 |
|---------|--------------------|----------|
| 5.1 Set Prices in Multiple Currencies | Currency price: the price per currency (the currency, the price, the exchange rate) | TC-SA-12-05-001 |
| 5.1 Set Prices in Multiple Currencies | Currency scope: the scope (the currency, the region) | TC-SA-12-05-002 |
| 5.1 Set Prices in Multiple Currencies | Exchange rate: the rate (the rate from the base currency) | TC-SA-12-05-003 |
| 5.1 Set Prices in Multiple Currencies | Price definition: the price defined by the Super Admin (the currency, the price, the rate) | TC-SA-12-05-001 |
| 5.1 Set Prices in Multiple Currencies | Price application: the price applied (the learner pays in their currency) | TC-SA-12-05-004 |
| 5.1 Set Prices in Multiple Currencies | Price record: the price recorded (the currency, the price, the rate, the time) | TC-SA-12-05-005 |
| 5.1 Set Prices in Multiple Currencies | Audit logging of the price definition and the changes | TC-SA-12-05-006 |
| 5.1 Set Prices in Multiple Currencies | Rule: the currency price is per currency (the currency, the price, the exchange rate); the price is explicit per currency | TC-SA-12-05-001 |
| 5.1 Set Prices in Multiple Currencies | Rule: the currency scope is the currency and the region; the scope is the currency | TC-SA-12-05-002 |
| 5.1 Set Prices in Multiple Currencies | Rule: the exchange rate is the conversion (the rate from the base currency); the rate is the basis | TC-SA-12-05-003 |
| 5.1 Set Prices in Multiple Currencies | Rule: a price change (a currency's price updated) is recorded (the new price, the new rate, the time); it is auditable | TC-SA-12-05-007 |
| 5.1 Set Prices in Multiple Currencies | Rule: the currency prices are visible (the currencies, the prices, the rates); the multi-currency pricing is managed | TC-SA-12-05-008 |
| 5.1 Set Prices in Multiple Currencies | Rule: price definition and changes are audit-logged with the currency, price, and timestamp | TC-SA-12-05-006 |
| 5.2 Currency Conversion Handling | Base currency: the base (the base currency, the one the prices are defined in) | TC-SA-12-05-009 |
| 5.2 Currency Conversion Handling | Exchange rates: the rates (the rate from the base currency to each currency) | TC-SA-12-05-010 |
| 5.2 Currency Conversion Handling | Update frequency: the frequency (the rate update, the daily, the weekly) | TC-SA-12-05-011 |
| 5.2 Currency Conversion Handling | Conversion calculation: the calculation (the price in the base currency, the rate, the price in the target currency) | TC-SA-12-05-012 |
| 5.2 Currency Conversion Handling | Rule definition: the rules (the base, the rates, the frequency) | TC-SA-12-05-013 |
| 5.2 Currency Conversion Handling | Conversion application: the conversion applied (the price is converted to the target currency) | TC-SA-12-05-014 |
| 5.2 Currency Conversion Handling | Audit logging of the conversion rules and the applications | TC-SA-12-05-015 |
| 5.2 Currency Conversion Handling | Rule: the base currency is the reference (the one the prices are defined in); the base is the basis | TC-SA-12-05-009 |
| 5.2 Currency Conversion Handling | Rule: the exchange rates are the conversion (the rate from the base to each currency); the rates are the basis | TC-SA-12-05-010 |
| 5.2 Currency Conversion Handling | Rule: the update frequency is the rate update (the daily, the weekly); the frequency is the freshness | TC-SA-12-05-011 |
| 5.2 Currency Conversion Handling | Rule: a rule change (a conversion rule updated) is recorded (the new base, the new rates, the new frequency, the time); it is auditable | TC-SA-12-05-013 |
| 5.2 Currency Conversion Handling | Rule: the conversion rules are visible (the base, the rates, the frequency); the currency conversion is managed | TC-SA-12-05-016 |
| 5.2 Currency Conversion Handling | Rule: conversion rules and applications are audit-logged with the base currency, rates, and timestamp | TC-SA-12-05-015 |

## 5.1 Set Prices in Multiple Currencies

### TC-SA-12-05-001 — Price definition: the price defined by the Super Admin (the currency, the price, the rate); the price is explicit per currency
**Type:** Positive
**Covers:** 5.1 → Currency price: the price per currency (the currency, the price, the exchange rate); Price definition: the price defined by the Super Admin (the currency, the price, the rate); Rule: the currency price is per currency; the price is explicit per currency
**Preconditions:** The Super Admin opens the multi-currency support.
**Steps:**
1. Define the currency price: the currency (e.g., the INR, the USD, the EUR), the price, and the exchange rate.
2. Save the price.
3. Verify the currency price is live and explicit per currency.
**Expected Result:** The currency price is defined (the currency, the price, the exchange rate) — the price is explicit per currency.
**Priority:** Critical

### TC-SA-12-05-002 — Currency scope: the scope (the currency, the region); the scope is the currency
**Type:** Positive
**Covers:** 5.1 → Currency scope: the scope (the currency, the region); Rule: the currency scope is the currency and the region; the scope is the currency
**Preconditions:** A currency price is defined.
**Steps:**
1. Open the currency scope for the price.
2. Verify the scope is the currency and the region.
3. Verify the scope is the currency.
**Expected Result:** The currency scope is the currency and the region — the scope is the currency.
**Priority:** High

### TC-SA-12-05-003 — Exchange rate: the rate (the rate from the base currency); the rate is the basis
**Type:** Positive
**Covers:** 5.1 → Exchange rate: the rate (the rate from the base currency); Rule: the exchange rate is the conversion (the rate from the base currency); the rate is the basis
**Preconditions:** A currency price is defined with an exchange rate.
**Steps:**
1. Open the exchange rate.
2. Verify the rate is the rate from the base currency.
3. Verify the rate is the basis for the conversion.
**Expected Result:** The exchange rate is the rate from the base currency — the rate is the basis.
**Priority:** High

### TC-SA-12-05-004 — Price application: the price applied (the learner pays in their currency)
**Type:** Positive
**Covers:** 5.1 → Price application: the price applied (the learner pays in their currency)
**Preconditions:** Currency prices are live for multiple currencies.
**Steps:**
1. As a learner in a region, view the price in their currency.
2. Complete the purchase.
3. Verify the learner pays in their currency (the currency price applied).
**Expected Result:** The price is applied — the learner pays in their currency.
**Priority:** Critical

### TC-SA-12-05-005 — Price record: the price recorded (the currency, the price, the rate, the time); the record is the proof
**Type:** Positive
**Covers:** 5.1 → Price record: the price recorded (the currency, the price, the rate, the time)
**Preconditions:** A currency price has been applied to a purchase.
**Steps:**
1. Open the price record.
2. Verify it shows the currency, the price, the rate, and the time.
**Expected Result:** The price is recorded — the currency, the price, the rate, and the time are shown.
**Priority:** High

### TC-SA-12-05-006 — Price definition and changes are audit-logged with the currency, price, and timestamp
**Type:** Positive
**Covers:** 5.1 → Audit logging of the price definition and the changes; Rule: price definition and changes are audit-logged with the currency, price, and timestamp
**Preconditions:** Currency price definition and change events have occurred.
**Steps:**
1. Open the audit trail and filter by "currency price".
2. Verify entries show the currency, the price, and the timestamp.
**Expected Result:** The price definition and changes are audit-logged with the currency, price, and timestamp.
**Priority:** Critical

### TC-SA-12-05-007 — A price change (a currency's price updated) is recorded (the new price, the new rate, the time); it is auditable
**Type:** Positive
**Covers:** 5.1 → Rule: a price change (a currency's price updated) is recorded (the new price, the new rate, the time); it is auditable
**Preconditions:** A currency price is live.
**Steps:**
1. Change the currency's price (the new price, the new rate, the time).
2. Verify the price is updated.
3. Verify the change is recorded and auditable.
**Expected Result:** The price change is recorded (the new price, the new rate, the time) — it is auditable.
**Priority:** High

### TC-SA-12-05-008 — The currency prices are visible (the currencies, the prices, the rates); the multi-currency pricing is managed
**Type:** Positive
**Covers:** 5.1 → Rule: the currency prices are visible (the currencies, the prices, the rates); the multi-currency pricing is managed
**Preconditions:** Multiple currency prices are defined.
**Steps:**
1. Open the currency prices view.
2. Verify the currencies, the prices, and the rates are visible.
3. Verify the multi-currency pricing is managed.
**Expected Result:** The currency prices are visible — the currencies, the prices, and the rates are shown.
**Priority:** Medium

## 5.2 Currency Conversion Handling

### TC-SA-12-05-009 — Base currency: the base (the base currency, the one the prices are defined in); the base is the basis
**Type:** Positive
**Covers:** 5.2 → Base currency: the base (the base currency, the one the prices are defined in); Rule: the base currency is the reference (the one the prices are defined in); the base is the basis
**Preconditions:** The Super Admin opens the currency conversion handling.
**Steps:**
1. Open the base currency.
2. Verify the base currency is the one the prices are defined in.
3. Verify the base is the reference for all conversions.
**Expected Result:** The base currency is the reference — the one the prices are defined in.
**Priority:** Critical

### TC-SA-12-05-010 — Exchange rates: the rates (the rate from the base currency to each currency); the rates are the basis
**Type:** Positive
**Covers:** 5.2 → Exchange rates: the rates (the rate from the base currency to each currency); Rule: the exchange rates are the conversion (the rate from the base to each currency); the rates are the basis
**Preconditions:** The base currency is set.
**Steps:**
1. Open the exchange rates.
2. Verify the rate from the base currency to each currency is set.
3. Verify the rates are the basis for the conversions.
**Expected Result:** The exchange rates are the rate from the base to each currency — the rates are the basis.
**Priority:** High

### TC-SA-12-05-011 — Update frequency: the frequency (the rate update, the daily, the weekly); the frequency is the freshness
**Type:** Positive
**Covers:** 5.2 → Update frequency: the frequency (the rate update, the daily, the weekly); Rule: the update frequency is the rate update (the daily, the weekly); the frequency is the freshness
**Preconditions:** The exchange rates are set.
**Steps:**
1. Open the update frequency.
2. Verify the rate update frequency is set (the daily, the weekly).
3. Verify the rates are updated per the frequency (the freshness is maintained).
**Expected Result:** The update frequency is the rate update (the daily, the weekly) — the frequency is the freshness.
**Priority:** High

### TC-SA-12-05-012 — Conversion calculation: the calculation (the price in the base currency, the rate, the price in the target currency); the calculation is the price
**Type:** Positive
**Covers:** 5.2 → Conversion calculation: the calculation (the price in the base currency, the rate, the price in the target currency)
**Preconditions:** The base currency, the rates, and the frequency are set.
**Steps:**
1. Open the conversion calculation for a target currency.
2. Verify it shows the price in the base currency, the rate, and the price in the target currency.
3. Verify the price in the target currency = the price in the base currency × the rate (the calculation is explicit).
**Expected Result:** The conversion calculation is explicit — the price in the base currency, the rate, and the price in the target currency are shown and correct.
**Priority:** Critical

### TC-SA-12-05-013 — Rule definition: the rules (the base, the rates, the frequency); a rule change is recorded and auditable
**Type:** Positive
**Covers:** 5.2 → Rule definition: the rules (the base, the rates, the frequency); Rule: a rule change (a conversion rule updated) is recorded (the new base, the new rates, the new frequency, the time); it is auditable
**Preconditions:** The conversion rules are defined (the base, the rates, the frequency).
**Steps:**
1. Open the conversion rules and verify the base, the rates, and the frequency are defined.
2. Change a conversion rule (the new base, the new rates, the new frequency, the time).
3. Verify the change is recorded and auditable.
**Expected Result:** The conversion rules are defined (the base, the rates, the frequency) — a rule change is recorded and auditable.
**Priority:** High

### TC-SA-12-05-014 — Conversion application: the conversion applied (the price is converted to the target currency)
**Type:** Positive
**Covers:** 5.2 → Conversion application: the conversion applied (the price is converted to the target currency)
**Preconditions:** The conversion rules are live.
**Steps:**
1. As a learner in a region, view the price.
2. Verify the price is converted to the target currency (the conversion applied).
3. Verify the converted price matches the conversion calculation.
**Expected Result:** The conversion is applied — the price is converted to the target currency.
**Priority:** Critical

### TC-SA-12-05-015 — Conversion rules and applications are audit-logged with the base currency, rates, and timestamp
**Type:** Positive
**Covers:** 5.2 → Audit logging of the conversion rules and the applications; Rule: conversion rules and applications are audit-logged with the base currency, rates, and timestamp
**Preconditions:** Conversion rule and application events have occurred.
**Steps:**
1. Open the audit trail and filter by "currency conversion".
2. Verify entries show the base currency, the rates, and the timestamp.
**Expected Result:** The conversion rules and applications are audit-logged with the base currency, rates, and timestamp.
**Priority:** Critical

### TC-SA-12-05-016 — The conversion rules are visible (the base, the rates, the frequency); the currency conversion is managed
**Type:** Positive
**Covers:** 5.2 → Rule: the conversion rules are visible (the base, the rates, the frequency); the currency conversion is managed
**Preconditions:** The conversion rules are defined.
**Steps:**
1. Open the conversion rules view.
2. Verify the base, the rates, and the frequency are visible.
3. Verify the currency conversion is managed.
**Expected Result:** The conversion rules are visible — the base, the rates, and the frequency are shown.
**Priority:** Medium
