import { describe, expect, it, vi } from 'vitest'; import axios from 'axios'; import { getExchange } from 'src/composables/getExchange'; vi.mock('axios'); describe('getExchange()', () => { it('should return the correct exchange rate', async () => { axios.get.mockResolvedValue({ data: { value: 1.2 }, }); const amount = 100; const currencyFk = 1; const dated = '2023-01-01'; const result = await getExchange(amount, currencyFk, dated); expect(result).toBe('83.33'); }); it('should return the correct exchange rate with custom decimal places', async () => { axios.get.mockResolvedValue({ data: { value: 1.2 }, }); const amount = 100; const currencyFk = 1; const dated = '2023-01-01'; const decimalPlaces = 3; const result = await getExchange(amount, currencyFk, dated, decimalPlaces); expect(result).toBe('83.333'); }); it('should return null if the API call fails', async () => { axios.get.mockRejectedValue(new Error('Network error')); const amount = 100; const currencyFk = 1; const dated = '2023-01-01'; const result = await getExchange(amount, currencyFk, dated); expect(result).toBeNull(); }); });