import { configure, mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import React, { useState } from 'react';
import { act } from 'react-dom/test-utils';
import FormRender, { useForm } from '../src/index';
import { listSchema, normalSchema } from './schema';
configure({ adapter: new Adapter() });
const Form = () => {
const form = useForm();
const [state, setState] = useState({
input1: 'fr',
select1: 'd',
});
const onFinish = (formData, errors) => {
setState(formData);
};
const watch = {
// # 为全局
'#': val => {
console.log('表单的实时数据为:', val);
},
input1: {
handler: val => {
console.log(val);
},
immediate: true,
},
onSearch: val => {},
};
const onMount = () => {
form.setValueByPath('link', 'www.baidu.com');
};
const onClick = () => {
form.setValueByPath('link', 'www.baidu.com');
};
return (
{state?.input1}
{state?.select1}
);
};
const ListForm = () => {
const [state, setState] = useState({
input1: 'fr',
select1: 'd',
});
const form = useForm();
const onFinish = (formData, errors) => {
setState(formData);
};
return (
{state?.input1}
{state?.select1}
);
};
function sleep(ms): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
describe('FormRender', () => {
it('📦 Render FR Success', async () => {
const wrapper = mount();
act(() => {
wrapper.find('#submit').simulate('click');
wrapper.find('#test').simulate('click');
wrapper.find('.ant-collapse-header').simulate('click');
});
await act(() => sleep(500));
expect(wrapper.find('.input').text()).toEqual('简单输入框');
expect(wrapper.find('.select').text()).toEqual('a');
act(() => {
wrapper.unmount();
});
});
// it('📦 Render FR List Widget Success', async () => {
// const wrapper = mount();
// act(() => {
// wrapper.find('#submit').simulate('click');
// });
// await act(() => sleep(500));
// // expect(wrapper.find('.input').text()).toEqual('简单输入框');
// // expect(wrapper.find('.select').text()).toEqual('a');
// act(() => {
// wrapper.unmount();
// });
// });
// it('📦 FR Validate Success', async () => {
// const { getByText } = render();
// fireEvent.change(getByText('fr'), {
// target: { value: '' },
// });
// fireEvent.click(getByText('提交'));
// });
});