(Component: ComponentType<FormProps>, theProps: FormProps)
| 22 | } |
| 23 | |
| 24 | export function createComponent(Component: ComponentType<FormProps>, theProps: FormProps) { |
| 25 | const onChange = vi.fn(); |
| 26 | const onError = vi.fn(); |
| 27 | const onSubmit = vi.fn(); |
| 28 | const { container, rerender } = render( |
| 29 | <Component onSubmit={onSubmit} onError={onError} onChange={onChange} {...theProps} />, |
| 30 | ); |
| 31 | |
| 32 | const rerenderFunction: RerenderType = (newProps: NoValFormProps, v: ValidatorType = validator) => { |
| 33 | // For Form components, ensure validator is always passed |
| 34 | const propsWithValidator: FormProps = { ...newProps, validator: v }; |
| 35 | return rerender(<Component onSubmit={onSubmit} onError={onError} onChange={onChange} {...propsWithValidator} />); |
| 36 | }; |
| 37 | const node = container.firstElementChild; |
| 38 | if (!node) { |
| 39 | throw new Error('node is not defined'); |
| 40 | } |
| 41 | |
| 42 | return { container, node, onChange, onError, onSubmit, rerender: rerenderFunction }; |
| 43 | } |
| 44 | |
| 45 | export function createFormComponent(props: NoValFormProps, v: ValidatorType = validator) { |
| 46 | return createComponent(Form, { validator: v, ...props }); |
no outgoing calls
no test coverage detected
searching dependent graphs…