0
0
Fork 0

test: refs #7058 pass both tests

This commit is contained in:
Javier Segarra 2025-02-05 13:48:29 +01:00
parent 5e2158daf4
commit fcdc69d7c8
2 changed files with 179 additions and 4 deletions

View File

@ -272,7 +272,7 @@ describe('Leftmenu as main', () => {
it('should get routes for main source', () => {
vm.props.source = 'main';
vm.getRoutes();
expect(useNavigationStore().getModules).toHaveBeenCalled();
expect(navigation.getModules).toHaveBeenCalled();
});
it('should find direct child matches', () => {
@ -328,6 +328,10 @@ describe('normalize', () => {
expect(vm.normalize(input)).toBe(expected);
});
});
// describe('addMenuItem', () => {
// const findMatches = vi.fn().mockImplementation(() => []);
//
// });
describe('addChildren', () => {
const module = 'testModule';
@ -346,7 +350,7 @@ describe('addChildren', () => {
};
vm.addChildren(module, route, parent);
expect(useNavigationStore().addMenuItem).toHaveBeenCalled();
expect(navigation.addMenuItem).toHaveBeenCalled();
});
it('should handle routes with no meta menu', () => {
@ -358,7 +362,7 @@ describe('addChildren', () => {
const parent = [];
vm.addChildren(module, route, parent);
expect(useNavigationStore().addMenuItem).toHaveBeenCalled();
expect(navigation.addMenuItem).toHaveBeenCalled();
});
it('should handle empty parent array', () => {
@ -383,6 +387,6 @@ describe('addChildren', () => {
],
};
vm.addChildren(module, route, parent);
expect(useNavigationStore().addMenuItem).toHaveBeenCalled();
expect(navigation.addMenuItem).toHaveBeenCalled();
});
});

View File

@ -0,0 +1,171 @@
import { setActivePinia, createPinia } from 'pinia';
import { ref } from 'vue';
import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest';
import { useNavigationStore } from '../useNavigationStore';
import axios from 'axios';
// import { axios } from 'app/test/vitest/helper';
// vi.mock('axios');
vi.mock('src/router/modules', () => [
{ name: 'Item', meta: {} },
{ name: 'Shelving', meta: {} },
{ name: 'Order', meta: {} },
]);
vi.mock('src/filters', () => ({
toLowerCamel: vi.fn((name) => name.toLowerCase()),
}));
const modulesMock = [
{
name: 'Item',
children: null,
title: 'globals.pageTitles.undefined',
icon: undefined,
module: 'item',
isPinned: true,
},
{
name: 'Shelving',
children: null,
title: 'globals.pageTitles.undefined',
icon: undefined,
module: 'shelving',
isPinned: false,
},
{
name: 'Order',
children: null,
title: 'globals.pageTitles.undefined',
icon: undefined,
module: 'order',
isPinned: false,
},
];
const pinnedModulesMock = [
{
name: 'Item',
children: null,
title: 'globals.pageTitles.undefined',
icon: undefined,
module: 'item',
isPinned: true,
},
];
let store;
describe('useNavigationStore', () => {
beforeEach(() => {
setActivePinia(createPinia());
vi.spyOn(axios, 'get').mockResolvedValue({ data: true });
store = useNavigationStore();
store.getModules = vi.fn().mockReturnValue({
value: modulesMock,
});
store.getPinnedModules = vi.fn().mockReturnValue({
value: pinnedModulesMock,
});
});
afterEach(() => {
vi.clearAllMocks();
});
it('should return modules with correct structure', () => {
const store = useNavigationStore();
// store.pinnedModules = ref(['item']);
const modules = store.getModules();
expect(modules.value).toEqual(modulesMock);
});
it('should return pinned modules', () => {
const store = useNavigationStore();
// store.pinnedModules = ref(['item']);
const pinnedModules = store.getPinnedModules();
expect(pinnedModules.value).toEqual(pinnedModulesMock);
});
it('should toggle pinned modules', () => {
const store = useNavigationStore();
store.togglePinned('item');
store.togglePinned('shelving');
expect(store.pinnedModules).toEqual(['item', 'shelving']);
store.togglePinned('item');
expect(store.pinnedModules).toEqual(['shelving']);
});
it('should fetch pinned modules', async () => {
// vi.mock('axios', () => ({
// get: vi.fn(() =>
// Promise.resolve({
// data: [{ id: 1, workerFk: 9, moduleFk: 'item', position: 1 }],
// }),
// ),
// }));
vi.spyOn(axios, 'get').mockResolvedValue({
data: [{ id: 1, workerFk: 9, moduleFk: 'order', position: 1 }],
});
const store = useNavigationStore();
// vi.spyOn(axios, 'get').mockResolvedValue({
// });
// store.togglePinned('shelving');
// store.togglePinned('shelving');
await store.fetchPinned();
expect(store.pinnedModules).toEqual(['order']);
});
it('should add menu item correctly', () => {
const store = useNavigationStore();
const module = 'customer';
const route = {
name: 'customer',
title: 'Customer',
icon: 'customer',
meta: {
keyBinding: 'ctrl+shift+c',
name: 'customer',
title: 'Customer',
icon: 'customer',
menu: 'customer',
menuChildren: [{ name: 'customer', title: 'Customer', icon: 'customer' }],
},
};
const parent = 'testParent';
// Mock de console.log para verificar la salida
// const consoleLogSpy = vi.spyOn(console, 'log');
const result = store.addMenuItem(module, route, []);
expect(result).toEqual({
children: [
{
icon: 'customer',
name: 'customer',
title: 'globals.pageTitles.Customer',
},
],
icon: 'customer',
keyBinding: 'ctrl+shift+c',
name: 'customer',
title: 'globals.pageTitles.Customer',
});
// expect(consoleLogSpy).toHaveBeenCalledWith(
// 'Adding menu item: child1 to parent: testParent',
// );
});
it('should not add menu item if condition is not met', () => {
const store = useNavigationStore();
const module = 'testModule';
const route = { meta: { hidden: true, menuchildren: {} } };
const parent = 'testParent';
const result = store.addMenuItem(module, route, []);
expect(result).toBeUndefined();
});
});