包含与酶反应最终形式的反应成分

问题描述 投票:0回答:1

我如何安装使用React Final Form的组件?当我在LoginComponent中评论时,它可以正确安装,但是我想安装整个组件。我希望albo测试validate和handleLoginFormSubmit函数是否正常工作。

我的组件代码:

const LoginForm = () => {
  const dispatch = useDispatch();
  const history = useHistory();

  const { loading, isLogged, errorMessage } = useSelector(state => state.auth);

  useEffect(() => {
    if (isLogged) {
      history.push('/');
    }

    return () => {
      dispatch(clearErrorMessage());
    };
  }, [dispatch, history, isLogged]);

  const handleSubmitLoginForm = values => { };

  const validate = ({ password }) => { };

  return (
    <article className="login-form-wrapper">
      <h2>Sign in</h2>
      <Form onSubmit={handleSubmitLoginForm} validate={validate}>
        {({ handleSubmit }) => (
          <form onSubmit={handleSubmit} autoComplete="off" className="login-form">
            <div className="login-form__field">
              <Field name="email" component={Input} type="email" label="E-mail" />
            </div>
            <div className="login-form__buttons">
              <button type="submit" className={loading ? 'button-disabled' : ''}>
                Sign in
              </button>
            </div>
          </form>
        )}
      </Form>
    </article>
  );
};

和我的测试:

  it('should contain proper text in header', () => {
    const store = mockStore({
      auth: {
        loading: false,
        isLogged: false,
        errorMessage: ''
      }
    });
    const wrapper = mount(
      <Provider store={store}>
        <MemoryRouter initialEntries={['/account/login']}>
          <LoginForm />
        </MemoryRouter>
      </Provider>
    );

    console.log(wrapper.debug());

    //expect(wrapper.find('h2').text()).toEqual('Sign in');
  });

我应该在测试中包装LoginForm吗?寻找任何建议;)

reactjs jestjs enzyme react-final-form
1个回答
0
投票

我应该将其提取到另一个组件中吗?

 <form onSubmit={handleSubmit} autoComplete="off" className="login-form">
            <div className="login-form__field">
              <Field name="email" component={Input} type="email" label="E-mail" />
            </div>
            <div className="login-form__buttons">
              <button type="submit" className={loading ? 'button-disabled' : ''}>
                Sign in
              </button>
            </div>
          </form>
© www.soinside.com 2019 - 2024. All rights reserved.