From 3c2c40c8e6c1f9c3ce4d10efb13343ebf5d1c8e6 Mon Sep 17 00:00:00 2001
From: jorgep <jorgep@verdnatura.es>
Date: Thu, 13 Feb 2025 17:34:10 +0100
Subject: [PATCH] refactor: refs #6564 improve test structure and readability
 in UserPanel.spec.js

---
 src/components/__tests__/UserPanel.spec.js | 102 ++++++++++-----------
 1 file changed, 50 insertions(+), 52 deletions(-)

diff --git a/src/components/__tests__/UserPanel.spec.js b/src/components/__tests__/UserPanel.spec.js
index 9e449745a..b6da8b058 100644
--- a/src/components/__tests__/UserPanel.spec.js
+++ b/src/components/__tests__/UserPanel.spec.js
@@ -1,65 +1,63 @@
-import { vi, describe, expect, it, beforeEach, afterEach } from 'vitest';
+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('src/utils/quasarLang', () => ({
-  default: vi.fn(),
-}));
-
 describe('UserPanel', () => {
-  let wrapper;
-  let vm;
-  let state;
+    let wrapper;
+    let vm;
+    let state;
 
-  beforeEach(() => {
-    wrapper = createWrapper(UserPanel, {});
-    state = useState();
-    state.setUser({
-      id: 115,
-      name: 'itmanagement',
-      nickname: 'itManagementNick',
-      lang: 'en',
-      darkMode: false,
-      companyFk: 442,
-      warehouseFk: 1,
+    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;
     });
-    wrapper = wrapper.wrapper;
-    vm = wrapper.vm;
-  });
 
-  afterEach(() => {
-    vi.clearAllMocks();
-  });
+    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 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(axios.patch).toHaveBeenCalledWith('/UserConfigs/115', { darkMode: true });
-    expect(vm.user.darkMode).toBe(true);
-    await vm.updatePreferences();
-    expect(vm.darkMode).toBe(true);
-  });
+    it('should toggle dark mode correctly and update preferences', async () => {
+        await vm.saveDarkMode(true);
+        expect(axios.patch).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 () => {
-    const userLanguage = 'es';
-    await vm.saveLanguage(userLanguage);
-    expect(axios.patch).toHaveBeenCalledWith('/VnUsers/115', { lang: userLanguage });
-    expect(vm.user.lang).toBe(userLanguage);
-    await vm.updatePreferences();
-    expect(vm.locale).toBe(userLanguage);
-  });
+    it('should change user language and update preferences', async () => {
+        const userLanguage = 'es';
+        await vm.saveLanguage(userLanguage);
+        expect(axios.patch).toHaveBeenCalledWith('/VnUsers/115', { lang: userLanguage });
+        expect(vm.user.lang).toBe(userLanguage);
+        vm.updatePreferences();
+        expect(vm.locale).toBe(userLanguage);
+    });
 
-  it('should update user data', async () => {
-    const key = 'name';
-    const value = 'itboss';
-    await vm.saveUserData(key, value);
-    expect(axios.post).toHaveBeenCalledWith('UserConfigs/setUserConfig', { [key]: value });
-  });
-});
\ No newline at end of file
+    it('should update user data', async () => {
+        const key = 'name';
+        const value = 'itboss';
+        await vm.saveUserData(key, value);
+        expect(axios.post).toHaveBeenCalledWith('UserConfigs/setUserConfig', {
+            [key]: value,
+        });
+    });
+});