forked from verdnatura/salix-front
99 lines
3.0 KiB
JavaScript
99 lines
3.0 KiB
JavaScript
import { jest, describe, expect, it, beforeAll } from '@jest/globals';
|
|
import { createWrapper } from 'app/tests/jest/jestHelpers';
|
|
import Leftmenu from '../LeftMenu.vue';
|
|
|
|
const mockPush = jest.fn();
|
|
|
|
jest.mock('vue-router', () => ({
|
|
useRouter: () => ({
|
|
push: mockPush,
|
|
currentRoute: { value: 'myCurrentRoute' }
|
|
}),
|
|
}));
|
|
|
|
jest.mock('src/router/routes', () => ([
|
|
{
|
|
path: '/',
|
|
name: 'Main',
|
|
children: [
|
|
{
|
|
path: '/dashboard',
|
|
name: 'Dashboard',
|
|
meta: { title: 'dashboard', icon: 'dashboard' }
|
|
},
|
|
{
|
|
path: '/customer',
|
|
name: 'Customer',
|
|
meta: {
|
|
title: 'customers',
|
|
icon: 'vn:client'
|
|
},
|
|
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;
|
|
beforeAll(() => {
|
|
vm = createWrapper(Leftmenu).vm;
|
|
});
|
|
|
|
it('should return the proper formated object without the children property', async () => {
|
|
const expectedMenuItem = {
|
|
stateName: 'Dashboard',
|
|
name: 'dashboard',
|
|
roles: [],
|
|
icon: 'dashboard',
|
|
title: 'dashboard'
|
|
}
|
|
|
|
const firstMenuItem = vm.navigation.modules.value[0];
|
|
expect(firstMenuItem.children).toBeUndefined();
|
|
expect(firstMenuItem).toEqual(expect.objectContaining(expectedMenuItem));
|
|
});
|
|
|
|
it('should return a proper formated object with two child items', async () => {
|
|
const expectedMenuItem = [{
|
|
name: 'CustomerList',
|
|
title: 'list',
|
|
icon: 'view_list',
|
|
stateName: 'CustomerList'
|
|
},
|
|
{
|
|
name: 'CustomerCreate',
|
|
title: 'createCustomer',
|
|
icon: 'vn:addperson',
|
|
stateName: 'CustomerCreate'
|
|
}];
|
|
|
|
const secondMenuItem = vm.navigation.modules.value[1];
|
|
expect(secondMenuItem.children).toEqual(expect.arrayContaining(expectedMenuItem));
|
|
expect(secondMenuItem.children.length).toEqual(2)
|
|
});
|
|
});
|