Ошибка модульного теста: поле должно быть внутри компонента, украшенного reduxForm () - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь протестировать свой контейнер, но самое первое, что он делает перед тем, как идти в тест, - это ошибка:


      27 |   };
      28 |
    > 29 |   const root = mount(
         |                ^
      30 |     <Provider store={store}>
      31 |       <IntlProvider {...props}>
      32 |         <ConfirmLeadContainer {...props} />

Но в моем контейнере есть избыточная форма, я использую перекомпоновку:

const enhance = compose(
  withAnalytics,
  withRouter,
  injectIntl,
  connect(null, mapDispatchToProps),
  flattenProp('params'),
  flattenProp('User'),
  withProps(createProps),
  withHandlers(handlers),
  reduxForm({
    form: 'confirmlead',
  }),
  lifecycle({
    componentDidMount() {
      const {
        cognitoId,
      } = this.props;


        showExpiredLinkModal({ cognitoId, event: 'accountStartAccountActivation' });

);

А это мой тест:

jest.mock('../../Analytics/track');
jest.mock('./ConfirmLead');
jest.mock('../updatePasswordWithCode');

const store = configureMockStore()({
  form: 'confirmLead',
});

const setup = (newProps) => {
  const props = {
    locale: 'en',
    router: {
      replace: jest.fn(),
    },
    ...newProps,
  };

  const root = mount(
    <Provider store={store}>
      <IntlProvider {...props}>
        <ConfirmLeadContainer {...props} />
      </IntlProvider>
    </Provider>
    ,
  );

  const wrapper = root.find(ConfirmLead);

  return {
    root,
    wrapper,
    props,
  };
};

describe('ConfirmLeadContainer', () => {
  beforeEach(() => {
    store.clearActions();
  });

  it('sets the firstName prop equal to firstName from match query params', () => {
    const { wrapper } = setup({
      match: {
        params: {
          cognitoId: '101101101',
          confirmationCode: '12121212',
          confirmationCodeExpiration: Date.now(),
        },
        location: {
          query: { firstName: 'joseph' },
        },
      },
    });

Я не понимаю, почему или где я должен добавить излишнюю форму? никогда не видел эту ошибку раньше, и эта ошибка мне не нужна ...

Любые идеи, что я могу сделать, чтобы избавиться от ошибки?

...