From 6a7cf5e8e858aee10a00e82319e32c300de65747 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 5 Dec 2024 12:34:29 +0100 Subject: [PATCH] feat: refs #7936 add unit tests --- src/components/LeftMenu.vue | 1 + .../__tests__/composables/getExchange.spec.js | 45 +++++++++++++++++++ .../useAccountShortToStandard.spec.js | 9 ++++ 3 files changed, 55 insertions(+) create mode 100644 test/vitest/__tests__/composables/getExchange.spec.js create mode 100644 test/vitest/__tests__/composables/useAccountShortToStandard.spec.js diff --git a/src/components/LeftMenu.vue b/src/components/LeftMenu.vue index ab2931dfd..31ad9ebed 100644 --- a/src/components/LeftMenu.vue +++ b/src/components/LeftMenu.vue @@ -177,6 +177,7 @@ function normalize(text) { class="full-width" filled dense + autofocus /> diff --git a/test/vitest/__tests__/composables/getExchange.spec.js b/test/vitest/__tests__/composables/getExchange.spec.js new file mode 100644 index 000000000..dba31458e --- /dev/null +++ b/test/vitest/__tests__/composables/getExchange.spec.js @@ -0,0 +1,45 @@ +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(); + }); +}); diff --git a/test/vitest/__tests__/composables/useAccountShortToStandard.spec.js b/test/vitest/__tests__/composables/useAccountShortToStandard.spec.js new file mode 100644 index 000000000..d24585812 --- /dev/null +++ b/test/vitest/__tests__/composables/useAccountShortToStandard.spec.js @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest'; +import { useAccountShortToStandard } from 'src/composables/useAccountShortToStandard'; + +describe('useAccountShortToStandard()', () => { + it('should pad the decimal part with zeros for short numbers', () => { + expect(useAccountShortToStandard('123.45')).toBe('1230000045'); + expect(useAccountShortToStandard('123.')).toBe('1230000000'); + }); +});