primevue-mirror/components/menubar/Menubar.spec.js

75 lines
2.7 KiB
JavaScript

import { mount } from '@vue/test-utils';
import Menubar from './Menubar.vue';
describe('Menubar.vue', () => {
let wrapper;
beforeEach(() => {
wrapper = mount(Menubar, {
global: {
stubs: {
'router-link': true
}
},
props: {
model: [
{
label: 'File',
icon: 'pi pi-fw pi-file',
items: [
{
label: 'New',
icon: 'pi pi-fw pi-plus',
items: [
{
label: 'Bookmark',
icon: 'pi pi-fw pi-bookmark'
},
{
label: 'Video',
icon: 'pi pi-fw pi-video'
}
]
},
{
label: 'Delete',
icon: 'pi pi-fw pi-trash'
},
{
separator: true
},
{
label: 'Export',
icon: 'pi pi-fw pi-external-link'
}
]
},
{
label: 'Quit',
icon: 'pi pi-fw pi-power-off'
}
]
},
slots: {
start: 'Start Slot',
end: 'End Slot'
}
});
});
it('should exist', () => {
expect(wrapper.find('.p-menubar.p-component').exists()).toBe(true);
expect(wrapper.find('.p-menubar-root-list').exists()).toBe(true);
expect(wrapper.findAll('ul.p-submenu-list').length).toBe(2);
expect(wrapper.findAll('ul.p-submenu-list')[0].findAll('li.p-menuitem')[0].find('.p-menuitem-text').text()).toBe('New');
expect(wrapper.findAll('li.p-menuitem').length).toBe(7);
expect(wrapper.findAll('li.p-menu-separator').length).toBe(1);
});
it('should slot visible', () => {
expect(wrapper.find('.p-menubar-start').exists()).toBe(true);
expect(wrapper.find('.p-menubar-end').exists()).toBe(true);
expect(wrapper.find('.p-menubar-end').text()).toBe('End Slot');
});
});