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(); }); });