import { mount } from '@vue/test-utils'; import { asyncExpect } from '@/tests/utils'; import Drawer from '..'; const DrawerCom = { props: { visible: { type: Boolean, default: false, }, destroyOnClose: { type: Boolean, default: false, }, getContainer: { type: Boolean, default: false, }, wrapClassName: { type: String, default: '', }, }, render() { const drawerProps = { props: { destroyOnClose: true, getContainer: false, visible: false, wrapClassName: this.wrapClassName, }, }; return Here is content of Drawer; }, }; describe('Drawer', () => { it('render correctly', async () => { const props = { propsData: { visible: true, width: 400, getContainer: false, }, slots: { default: ['Here is content of Drawer'], }, sync: false, }; const wrapper = mount(Drawer, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); it('render top drawer', async () => { const props = { propsData: { visible: true, height: 400, placement: 'top', getContainer: false, }, slots: { default: 'Here is content of Drawer', }, sync: false, }; const wrapper = mount(Drawer, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); it('have a title', async () => { const props = { propsData: { visible: true, title: 'Test Title', getContainer: false, }, slots: { default: 'Here is content of Drawer', }, sync: false, }; const wrapper = mount(Drawer, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); it('closable is false', async () => { const props = { propsData: { visible: true, closable: false, getContainer: false, }, slots: { default: 'Here is content of Drawer', }, sync: false, }; const wrapper = mount(Drawer, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); it('destroyOnClose is true', async () => { const props = { propsData: { destroyOnClose: true, closable: false, getContainer: false, }, slots: { default: 'Here is content of Drawer', }, sync: false, }; const wrapper = mount(Drawer, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); it('class is test_drawer', async () => { const props = { propsData: { wrapClassName: 'test_drawer', }, sync: false, }; const wrapper = mount(DrawerCom, props); await asyncExpect(() => { expect(wrapper.html()).toMatchSnapshot(); }); }); });