currency.test.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 the code itself for unknown currencies', () => {
  20. expect(getCurrencySymbol('XYZ')).toBe('XYZ');
  21. });
  22. it('is case-insensitive', () => {
  23. expect(getCurrencySymbol('usd')).toBe('$');
  24. expect(getCurrencySymbol('eur')).toBe('€');
  25. });
  26. });
  27. describe('SUPPORTED_CURRENCIES', () => {
  28. it('contains INR', () => {
  29. expect(SUPPORTED_CURRENCIES.find((c) => c.code === 'INR')).toBeDefined();
  30. });
  31. it('has 10 entries', () => {
  32. expect(SUPPORTED_CURRENCIES).toHaveLength(10);
  33. });
  34. });