From 5f75d3a0f13923eac703001359027fbaa33223a5 Mon Sep 17 00:00:00 2001 From: provira Date: Tue, 21 Jan 2025 12:56:30 +0100 Subject: [PATCH 01/22] feat: refs #7065 created unit tests for UserPanel --- src/components/__tests__/UserPanel.spec.js | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/components/__tests__/UserPanel.spec.js diff --git a/src/components/__tests__/UserPanel.spec.js b/src/components/__tests__/UserPanel.spec.js new file mode 100644 index 000000000..55bc51e66 --- /dev/null +++ b/src/components/__tests__/UserPanel.spec.js @@ -0,0 +1,67 @@ +import { vi, describe, expect, it, beforeEach, beforeAll, afterEach } from 'vitest'; +import { createWrapper } from 'app/test/vitest/helper'; +import UserPanel from 'src/components/UserPanel.vue'; +import axios from 'axios'; +import { useState } from 'src/composables/useState'; + +vi.mock('axios'); + +describe('UserPanel', () => { + let wrapper; + let vm; + let state; + let axiosPatchMock; + let axiosPostMock; + + beforeAll(() => { + axiosPatchMock = vi.spyOn(axios, 'patch').mockResolvedValue({}); + axiosPostMock = vi.spyOn(axios, 'post').mockResolvedValue({}); + }); + + beforeEach(() => { + wrapper = createWrapper(UserPanel, {}); + state = useState(); + state.setUser({ + id: 115, + name: 'itmanagement', + nickname: 'itManagementNick', + lang: 'en', + darkMode: false, + companyFk: 442, + warehouseFk: 1, + }); + wrapper = wrapper.wrapper; + vm = wrapper.vm; + }); + + afterEach(() => { + vi.clearAllMocks(); + }); + + it('should fetch warehouses data on mounted', async () => { + const fetchData = wrapper.findComponent({ name: 'FetchData' }); + expect(fetchData.props('url')).toBe('Warehouses'); + expect(fetchData.props('autoLoad')).toBe(true); + }); + + it('should toggle dark mode correctly and update preferences', async () => { + await vm.saveDarkMode(true); + expect(axiosPatchMock).toHaveBeenCalledWith('/UserConfigs/115', { darkMode: true }); + expect(vm.user.darkMode).toBe(true); + vm.updatePreferences(); + expect(vm.darkMode).toBe(true); + }); + + it('should change user language and update preferences', async () => { + await vm.saveLanguage('es'); + expect(axiosPatchMock).toHaveBeenCalledWith('/VnUsers/115', { lang: 'es' }); + expect(vm.user.lang).toBe('es'); + vm.updatePreferences(); + expect(vm.locale).toBe('es'); + }); + + it('should update user data', async () => { + await vm.saveUserData('name', 'itboss'); + expect(axiosPostMock).toHaveBeenCalledWith('UserConfigs/setUserConfig', { ['name']: 'itboss' }); + }); +}); From 9565f97c4f04a8b65ed541784f7263528beccef3 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 27 Jan 2025 13:37:14 +0100 Subject: [PATCH 02/22] fix: deleted duplicate request --- src/components/common/VnInput.vue | 1 + src/pages/Item/ItemRequest.vue | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/common/VnInput.vue b/src/components/common/VnInput.vue index 57a495ac3..0e739a48d 100644 --- a/src/components/common/VnInput.vue +++ b/src/components/common/VnInput.vue @@ -71,6 +71,7 @@ const focus = () => { defineExpose({ focus, + vnInputRef, }); const mixinRules = [ diff --git a/src/pages/Item/ItemRequest.vue b/src/pages/Item/ItemRequest.vue index d96fbca2f..76e4b8083 100644 --- a/src/pages/Item/ItemRequest.vue +++ b/src/pages/Item/ItemRequest.vue @@ -272,11 +272,12 @@ const onDenyAccept = (_, responseData) => { From ac57141c0e1245d06a8439d2c6170c6af6f68832 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 3 Feb 2025 16:19:33 +0000 Subject: [PATCH 22/22] fix: orderList column created --- src/pages/Order/OrderList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Order/OrderList.vue b/src/pages/Order/OrderList.vue index ae1fe68bd..d06b1ec26 100644 --- a/src/pages/Order/OrderList.vue +++ b/src/pages/Order/OrderList.vue @@ -81,7 +81,7 @@ const columns = computed(() => [ label: t('module.created'), component: 'date', cardVisible: true, - format: (row) => toDateTimeFormat(row?.landed), + format: (row) => toDateTimeFormat(row?.created), columnField: { component: null, },