134 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
| 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() {
 | |
|     return <Drawer {...this.$props}>Here is content of Drawer</Drawer>;
 | |
|   },
 | |
| };
 | |
| 
 | |
| describe('Drawer', () => {
 | |
|   it('render correctly', async () => {
 | |
|     const props = {
 | |
|       props: {
 | |
|         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 = {
 | |
|       props: {
 | |
|         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 = {
 | |
|       props: {
 | |
|         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 = {
 | |
|       props: {
 | |
|         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 = {
 | |
|       props: {
 | |
|         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 = {
 | |
|       props: {
 | |
|         wrapClassName: 'test_drawer',
 | |
|       },
 | |
|       sync: false,
 | |
|     };
 | |
|     const wrapper = mount(DrawerCom, props);
 | |
|     await asyncExpect(() => {
 | |
|       expect(wrapper.html()).toMatchSnapshot();
 | |
|     });
 | |
|   });
 | |
| });
 |