currency.test.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 E£ for EGP', () => {
  32. expect(getCurrencySymbol('EGP')).toBe('E£');
  33. });
  34. it('returns RD$ for DOP', () => {
  35. expect(getCurrencySymbol('DOP')).toBe('RD$');
  36. });
  37. it('returns the code itself for unknown currencies', () => {
  38. expect(getCurrencySymbol('XYZ')).toBe('XYZ');
  39. });
  40. it('is case-insensitive', () => {
  41. expect(getCurrencySymbol('usd')).toBe('$');
  42. expect(getCurrencySymbol('eur')).toBe('€');
  43. });
  44. });
  45. describe('SUPPORTED_CURRENCIES', () => {
  46. it('contains INR', () => {
  47. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'INR')).toBeDefined();
  48. });
  49. it('contains EGP', () => {
  50. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'EGP')).toBeDefined();
  51. });
  52. it('contains DOP', () => {
  53. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'DOP')).toEqual({ code: 'DOP', label: 'DOP (RD$)' });
  54. });
  55. it('contains MYR', () => {
  56. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'MYR')).toBeDefined();
  57. });
  58. it('contains BZD', () => {
  59. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'BZD')).toBeDefined();
  60. });
  61. it('contains IDR', () => {
  62. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'IDR')).toBeDefined();
  63. });
  64. it('contains PHP', () => {
  65. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'PHP')).toEqual({ code: 'PHP', label: 'PHP (₱)' });
  66. });
  67. it('has 34 entries', () => {
  68. expect(SUPPORTED_CURRENCIES).toHaveLength(34);
  69. });
  70. });