2018-06-21 12:32:13 +08:00
|
|
|
import React from 'react';
|
|
|
|
import Drawer from '..';
|
2022-04-18 21:02:11 +08:00
|
|
|
import { render, fireEvent } from '../../../tests/utils';
|
2018-06-21 12:32:13 +08:00
|
|
|
|
|
|
|
describe('Drawer', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const getDrawer = props => (
|
|
|
|
<Drawer visible getContainer={false} {...props}>
|
|
|
|
Here is content of Drawer
|
|
|
|
</Drawer>
|
|
|
|
);
|
|
|
|
|
2018-06-21 12:32:13 +08:00
|
|
|
it('render correctly', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const { container, asFragment, rerender } = render(getDrawer());
|
|
|
|
expect(container.querySelector('.ant-drawer-body')).toBeTruthy();
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
rerender(getDrawer({ visible: false }));
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
expect(container.querySelector('.ant-drawer-body').textContent).toEqual(
|
|
|
|
'Here is content of Drawer',
|
|
|
|
);
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
expect(asFragment().firstChild).toMatchSnapshot();
|
2018-06-21 12:32:13 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
it('mask trigger onClose', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const onClose = jest.fn();
|
|
|
|
const { container } = render(getDrawer({ onClose }));
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
fireEvent.click(container.querySelector('.ant-drawer-mask'));
|
|
|
|
expect(onClose).toHaveBeenCalled();
|
2018-06-21 12:32:13 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
it('close button trigger onClose', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const onClose = jest.fn();
|
|
|
|
const { container } = render(getDrawer({ onClose }));
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
fireEvent.click(container.querySelector('.ant-drawer-close'));
|
|
|
|
expect(onClose).toHaveBeenCalled();
|
2018-06-21 12:32:13 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
it('maskClosable no trigger onClose', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const onClose = jest.fn();
|
|
|
|
const { container } = render(getDrawer({ onClose, maskClosable: false }));
|
2018-06-21 12:32:13 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
fireEvent.click(container.querySelector('.ant-drawer-mask'));
|
|
|
|
expect(onClose).not.toHaveBeenCalled();
|
2018-06-21 12:32:13 +08:00
|
|
|
});
|
2018-07-20 18:51:10 +08:00
|
|
|
|
2020-06-08 19:24:29 +08:00
|
|
|
it('dom should be removed after close when destroyOnClose is true', () => {
|
2022-04-18 21:02:11 +08:00
|
|
|
const { container, rerender } = render(getDrawer({ destroyOnClose: true }));
|
2018-07-20 18:51:10 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
rerender(getDrawer({ destroyOnClose: true, visible: false }));
|
|
|
|
fireEvent.transitionEnd(container.querySelector('.ant-drawer-wrapper-body'));
|
|
|
|
|
|
|
|
expect(container.querySelector('.ant-drawer-wrapper-body')).toBeFalsy();
|
2020-06-08 19:24:29 +08:00
|
|
|
});
|
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
it('dom should be existed after close when destroyOnClose is false', () => {
|
|
|
|
const { container, rerender } = render(getDrawer());
|
|
|
|
expect(container.querySelector('.ant-drawer-wrapper-body')).toBeTruthy();
|
2018-07-20 18:51:10 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
rerender(getDrawer({ visible: false }));
|
|
|
|
fireEvent.transitionEnd(container.querySelector('.ant-drawer-wrapper-body'));
|
2018-07-20 18:51:10 +08:00
|
|
|
|
2022-04-18 21:02:11 +08:00
|
|
|
expect(container.querySelector('.ant-drawer-wrapper-body')).toBeTruthy();
|
2018-07-20 18:51:10 +08:00
|
|
|
});
|
2018-06-21 12:32:13 +08:00
|
|
|
});
|