Смонтировать компонент реакции, который включает в себя React Final Form с ферментом - PullRequest
1 голос
/ 30 апреля 2020

как я могу смонтировать компонент, который использует 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 в тесте? Ищу любой совет;)

...