forked from verdnatura/salix-front
93 lines
2.8 KiB
JavaScript
93 lines
2.8 KiB
JavaScript
|
import { vi, describe, expect, it, beforeAll } from 'vitest';
|
||
|
import { createWrapper, axios } from 'app/test/vitest/helper';
|
||
|
import Leftmenu from 'components/LeftMenu.vue';
|
||
|
|
||
|
import { useNavigationStore } from 'src/stores/useNavigationStore';
|
||
|
|
||
|
vi.mock('src/router/modules', () => ({
|
||
|
default: [
|
||
|
{
|
||
|
path: '/customer',
|
||
|
name: 'Customer',
|
||
|
meta: {
|
||
|
title: 'customers',
|
||
|
icon: 'vn:client',
|
||
|
},
|
||
|
menus: {
|
||
|
main: ['CustomerList', 'CustomerCreate'],
|
||
|
card: ['CustomerBasicData'],
|
||
|
},
|
||
|
children: [
|
||
|
{
|
||
|
path: '',
|
||
|
name: 'CustomerMain',
|
||
|
children: [
|
||
|
{
|
||
|
path: 'list',
|
||
|
name: 'CustomerList',
|
||
|
meta: {
|
||
|
title: 'list',
|
||
|
icon: 'view_list',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
path: 'create',
|
||
|
name: 'CustomerCreate',
|
||
|
meta: {
|
||
|
title: 'createCustomer',
|
||
|
icon: 'vn:addperson',
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
}));
|
||
|
|
||
|
describe('Leftmenu', () => {
|
||
|
let vm;
|
||
|
let navigation;
|
||
|
beforeAll(() => {
|
||
|
vi.spyOn(axios, 'get').mockResolvedValue({
|
||
|
data: [],
|
||
|
});
|
||
|
|
||
|
vm = createWrapper(Leftmenu, {
|
||
|
propsData: {
|
||
|
source: 'main',
|
||
|
},
|
||
|
}).vm;
|
||
|
|
||
|
navigation = useNavigationStore();
|
||
|
navigation.fetchPinned = vi.fn().mockReturnValue(Promise.resolve(true));
|
||
|
navigation.getModules = vi.fn().mockReturnValue({
|
||
|
value: [
|
||
|
{
|
||
|
name: 'customer',
|
||
|
title: 'customer.pageTitles.customers',
|
||
|
icon: 'vn:customer',
|
||
|
module: 'customer',
|
||
|
},
|
||
|
],
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should return a proper formated object with two child items', async () => {
|
||
|
const expectedMenuItem = [
|
||
|
{
|
||
|
name: 'CustomerList',
|
||
|
title: 'customer.pageTitles.list',
|
||
|
icon: 'view_list',
|
||
|
},
|
||
|
{
|
||
|
name: 'CustomerCreate',
|
||
|
title: 'customer.pageTitles.createCustomer',
|
||
|
icon: 'vn:addperson',
|
||
|
},
|
||
|
];
|
||
|
const firstMenuItem = vm.items[0];
|
||
|
expect(firstMenuItem.children).toEqual(expect.arrayContaining(expectedMenuItem));
|
||
|
});
|
||
|
});
|