diff --git a/src/components/sidebar/Sidebar.spec.js b/src/components/sidebar/Sidebar.spec.js new file mode 100644 index 000000000..eda571e6f --- /dev/null +++ b/src/components/sidebar/Sidebar.spec.js @@ -0,0 +1,54 @@ +import { mount } from '@vue/test-utils'; +import PrimeVue from '@/components/config/PrimeVue'; +import Sidebar from './Sidebar.vue'; + +describe('Sidebar.vue', () => { + let wrapper; + + beforeEach(() => { + wrapper = mount(Sidebar, { + global: { + plugins: [PrimeVue], + stubs: { + teleport: true + } + }, + props: { + visible: true, + bazeZIndex: 1000 + }, + slots: { + default: `

Left Sidebar

` + } + }); + }); + + it('should exist', () => { + expect(wrapper.find('.p-sidebar.p-component').exists()).toBe(true); + expect(wrapper.find('.p-sidebar').classes()).toContain('p-sidebar-left'); + expect(wrapper.find('.p-sidebar').classes()).toContain('p-sidebar-active'); + }); + + it('should close', async () => { + await wrapper.vm.hide(); + + expect(wrapper.emitted()['update:visible'][0]).toEqual([false]); + + await wrapper.setProps({ visible: false }); + + expect(wrapper.find('.p-sidebar.p-component').exists()).toBe(false); + }); + + it('should set position', async () => { + await wrapper.setProps({ position: 'bottom' }); + + expect(wrapper.find('.p-sidebar').classes()).toContain('p-sidebar-bottom'); + }); + + it('should set position', async () => { + await wrapper.setProps({ position: 'full' }); + + expect(wrapper.vm.fullScreen).toBe(true); + expect(wrapper.find('.p-sidebar').classes()).toContain('p-sidebar-full'); + }); +}); \ No newline at end of file