| 123456789101112131415161718192021222324252627282930313233343536 |
- import { describe, expect, test } from "vitest";
- import { getCurrencySymbol, CURRENCY_CONFIG, type CurrencyCode } from "@/lib/utils/currency";
- describe("getCurrencySymbol", () => {
- test("returns correct symbol for valid currency codes", () => {
- expect(getCurrencySymbol("USD")).toBe("$");
- expect(getCurrencySymbol("CNY")).toBe("\u00a5");
- expect(getCurrencySymbol("EUR")).toBe("\u20ac");
- expect(getCurrencySymbol("JPY")).toBe("\u00a5");
- expect(getCurrencySymbol("GBP")).toBe("\u00a3");
- expect(getCurrencySymbol("HKD")).toBe("HK$");
- expect(getCurrencySymbol("TWD")).toBe("NT$");
- expect(getCurrencySymbol("KRW")).toBe("\u20a9");
- expect(getCurrencySymbol("SGD")).toBe("S$");
- });
- test("returns USD symbol for undefined", () => {
- expect(getCurrencySymbol()).toBe("$");
- expect(getCurrencySymbol(undefined)).toBe("$");
- });
- test("returns USD symbol for invalid currency code", () => {
- expect(getCurrencySymbol("INVALID")).toBe("$");
- expect(getCurrencySymbol("")).toBe("$");
- expect(getCurrencySymbol("usd")).toBe("$"); // case-sensitive
- });
- test("all CURRENCY_CONFIG entries have valid symbols", () => {
- const codes: CurrencyCode[] = ["USD", "CNY", "EUR", "JPY", "GBP", "HKD", "TWD", "KRW", "SGD"];
- for (const code of codes) {
- const symbol = getCurrencySymbol(code);
- expect(symbol).toBe(CURRENCY_CONFIG[code].symbol);
- expect(symbol.length).toBeGreaterThan(0);
- }
- });
- });
|