currency.test.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { describe, it, expect } from 'vitest';
  2. import { getCurrencySymbol, SUPPORTED_CURRENCIES } from '../../utils/currency';
  3. describe('getCurrencySymbol', () => {
  4. it('returns $ for USD', () => {
  5. expect(getCurrencySymbol('USD')).toBe('$');
  6. });
  7. it('returns € for EUR', () => {
  8. expect(getCurrencySymbol('EUR')).toBe('€');
  9. });
  10. it('returns £ for GBP', () => {
  11. expect(getCurrencySymbol('GBP')).toBe('£');
  12. });
  13. it('returns ₹ for INR', () => {
  14. expect(getCurrencySymbol('INR')).toBe('₹');
  15. });
  16. it('returns HK$ for HKD', () => {
  17. expect(getCurrencySymbol('HKD')).toBe('HK$');
  18. });
  19. it('returns RM for MYR', () => {
  20. expect(getCurrencySymbol('MYR')).toBe('RM');
  21. });
  22. it('returns ₴ for UAH', () => {
  23. expect(getCurrencySymbol('UAH')).toBe('₴');
  24. });
  25. it('returns BZ$ for BZD', () => {
  26. expect(getCurrencySymbol('BZD')).toBe('BZ$');
  27. });
  28. it('returns the code itself for unknown currencies', () => {
  29. expect(getCurrencySymbol('XYZ')).toBe('XYZ');
  30. });
  31. it('is case-insensitive', () => {
  32. expect(getCurrencySymbol('usd')).toBe('$');
  33. expect(getCurrencySymbol('eur')).toBe('€');
  34. });
  35. });
  36. describe('SUPPORTED_CURRENCIES', () => {
  37. it('contains INR', () => {
  38. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'INR')).toBeDefined();
  39. });
  40. it('contains MYR', () => {
  41. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'MYR')).toBeDefined();
  42. });
  43. it('contains BZD', () => {
  44. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'BZD')).toBeDefined();
  45. });
  46. it('has 30 entries', () => {
  47. expect(SUPPORTED_CURRENCIES).toHaveLength(30);
  48. });
  49. });