import React from 'react';
import { ProFormText, DrawerForm, ModalForm } from '@ant-design/pro-form';
import { Button } from 'antd';
import { act } from 'react-dom/test-utils';
import { mount } from 'enzyme';
import { waitForComponentToPaint } from '../util';
describe('DrawerForm', () => {
it('📦 trigger will simulate onVisibleChange', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button#new').simulate('click');
});
act(() => {
wrapper.unmount();
});
expect(fn).toBeCalledWith(true);
});
it('📦 DrawerForm first no render items', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeFalsy();
act(() => {
wrapper.find('button#new').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeTruthy();
});
it('📦 DrawerForm first render items', async () => {
const fn = jest.fn();
const wrapper = mount(
fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeTruthy();
});
it('📦 DrawerForm destroyOnClose', async () => {
const fn = jest.fn();
const wrapper = mount(
fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeFalsy();
act(() => {
wrapper.setProps({
visible: true,
});
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeTruthy();
act(() => {
wrapper.setProps({
visible: false,
});
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('input#test').exists()).toBeFalsy();
});
it('📦 drawer close button will simulate onVisibleChange', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-drawer-close').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 drawer close button will simulate onVisibleChange', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-drawer-close').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 reset button will simulate onVisibleChange', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('.ant-drawer-footer button.ant-btn').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 drawer close button will simulate drawerProps.onClose', async () => {
const fn = jest.fn();
const wrapper = mount(
fn(false),
}}
trigger={}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-drawer-close').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 drawer reset button will simulate drawerProps.onClose', async () => {
const fn = jest.fn();
const wrapper = mount(
fn(false),
}}
trigger={}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-btn').at(0).simulate('click');
});
expect(fn).toBeCalledWith(false);
});
it('📦 drawer reset button will simulate drawerProps.onCancel', async () => {
const fn = jest.fn();
const wrapper = mount(
fn(false),
}}
trigger={}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-btn').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 form onFinish return true should close drawer', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
onFinish={async () => true}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-btn-primary').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledWith(false);
});
it('📦 form onFinish is null, no close drawer', async () => {
const fn = jest.fn();
const wrapper = mount(
新建}
onVisibleChange={(visible) => fn(visible)}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('button.ant-btn-primary').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalledTimes(1);
});
it('📦 getContainer is function', async () => {
const ref = React.createRef();
const wrapper = mount(
ref.current!,
}}
trigger={
}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
});
it('📦 getContainer is string', async () => {
const ref = React.createRef();
document.getElementById = () => ref.current;
const wrapper = mount(
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
});
it('📦 getContainer is element', async () => {
const ref = React.createRef();
const Demo = () => (
);
const wrapper = mount();
wrapper.setProps({
id: '1212',
});
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
});
it('📦 ModalForm getContainer is function', async () => {
const ref = React.createRef();
const wrapper = mount(
ref.current!,
}}
trigger={
}
>
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
act(() => {
wrapper.unmount();
});
});
it('📦 ModalForm getContainer is string', async () => {
const ref = React.createRef();
document.getElementById = () => ref.current;
const wrapper = mount(
,
);
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
});
it('📦 ModalForm getContainer is element', async () => {
const ref = React.createRef();
const Demo = () => (
);
const wrapper = mount();
wrapper.setProps({
id: '1212',
});
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#new').at(0).simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('#render-form').render().find('.ant-form').length).toBe(1);
});
});