import { mount } from 'enzyme';
import React from 'react';
import { QueryFilter, ProFormText, ProFormGroup } from '@ant-design/pro-form';
import { act } from 'react-dom/test-utils';
import { waitForComponentToPaint, waitTime } from '../util';
describe('QueryFilter', () => {
it('๐ต๏ธโโ๏ธ basic use', async () => {
const onFinish = jest.fn();
const wrapper = mount(
,
);
act(() => {
wrapper.find('.ant-btn-primary').simulate('submit');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('.ant-input').length).toEqual(2);
await waitForComponentToPaint(wrapper);
expect(onFinish).toHaveBeenCalledWith({
a: 'testa',
});
});
it('๐ต๏ธโโ๏ธ keep all field value when collapsed', async () => {
const onFinish = jest.fn();
const wrapper = mount(
,
);
act(() => {
wrapper.find('.ant-btn-primary').simulate('submit');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('.ant-input').length).toEqual(3);
expect(wrapper.find('.ant-row.ant-form-item-hidden').length).toEqual(1);
expect(wrapper.find('.anticon-down').length).toEqual(1);
expect(onFinish).toHaveBeenCalledWith({
a: 'testa',
b: 'testb',
c: 'testc',
});
});
it('๐ต๏ธโโ๏ธ no keep collapsed field value', async () => {
const onFinish = jest.fn();
const wrapper = mount(
,
);
act(() => {
wrapper.find('.ant-btn-primary').simulate('submit');
});
await waitForComponentToPaint(wrapper);
expect(wrapper.find('.ant-input').length).toEqual(2);
expect(wrapper.find('.ant-row.ant-form-item-hidden').length).toEqual(0);
expect(wrapper.find('.anticon-down').length).toEqual(1);
expect(onFinish).toHaveBeenCalledWith({
a: 'testa',
b: 'testb',
});
});
it('๐ต๏ธโโ๏ธ labelWidth', async () => {
const wrapper = mount(
,
);
expect(wrapper.find('.ant-col.ant-form-item-label').at(0).prop('style')?.flex).toEqual(
'0 0 70px',
);
});
it('๐ต๏ธโโ๏ธ responsive 512', async () => {
const wrapper = mount(
,
);
await waitForComponentToPaint(wrapper, 100);
expect(wrapper.find('.ant-row.ant-form-item-hidden').length).toEqual(1);
});
it('๐ต๏ธโโ๏ธ responsive 1064', async () => {
const wrapper = mount(
,
);
expect(wrapper.find('.ant-row.ant-form-item-hidden').length).toEqual(2);
});
it('๐ต๏ธโโ๏ธ responsive 1064 with vertical', async () => {
const wrapper = mount(
,
);
expect(wrapper.find('.ant-row.ant-form-item-hidden').length).toEqual(1);
});
it('๐ต๏ธโโ๏ธ submitter support render', async () => {
const fn = jest.fn();
const wrapper = mount(
{
return [
{
props.submit();
}}
>
ๆไบค
,
{
props.reset();
}}
>
้็ฝฎ
,
];
},
}}
layout="vertical"
>
,
);
act(() => {
wrapper.find('.ant-pro-form-collapse-button').simulate('click');
});
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#submit').simulate('click');
});
await waitForComponentToPaint(wrapper);
act(() => {
wrapper.find('#reset').simulate('click');
});
await waitForComponentToPaint(wrapper);
expect(fn).toBeCalled();
});
it('๐ต๏ธโโ๏ธ collapseRender should work', async () => {
const wrapper = mount(
(collapsed ? 'open' : 'close')}
>
,
);
expect(wrapper.find('a.ant-pro-form-collapse-button').text()).toBe('open');
act(() => {
wrapper.setProps({
collapsed: false,
});
});
await waitTime(100);
expect(wrapper.find('a.ant-pro-form-collapse-button').text()).toBe('close');
});
it('๐ต๏ธโโ๏ธ QueryFilter support ProForm.Group', async () => {
const wrapper = mount(
,
);
await waitForComponentToPaint(wrapper);
expect(wrapper.find('.ant-pro-form-group').exists()).toBeFalsy();
});
});