currency.test.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 ₱ for PHP', () => {
  29. expect(getCurrencySymbol('PHP')).toBe('₱');
  30. });
  31. it('returns the code itself for unknown currencies', () => {
  32. expect(getCurrencySymbol('XYZ')).toBe('XYZ');
  33. });
  34. it('is case-insensitive', () => {
  35. expect(getCurrencySymbol('usd')).toBe('$');
  36. expect(getCurrencySymbol('eur')).toBe('€');
  37. });
  38. });
  39. describe('SUPPORTED_CURRENCIES', () => {
  40. it('contains INR', () => {
  41. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'INR')).toBeDefined();
  42. });
  43. it('contains MYR', () => {
  44. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'MYR')).toBeDefined();
  45. });
  46. it('contains BZD', () => {
  47. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'BZD')).toBeDefined();
  48. });
  49. it('contains IDR', () => {
  50. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'IDR')).toBeDefined();
  51. });
  52. it('contains PHP', () => {
  53. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'PHP')).toEqual({ code: 'PHP', label: 'PHP (₱)' });
  54. });
  55. it('has 32 entries', () => {
  56. expect(SUPPORTED_CURRENCIES).toHaveLength(32);
  57. });
  58. });