Тестовый компонент, обернутый с withRouter при экспорте - PullRequest
0 голосов
/ 10 июля 2019

Я получил ошибку при тестировании компонента, который использует историю в своих реквизитах. Мой тест:

describe('Widgetcomponent', () => {
  const fakeProps = {
    title: 'Test title',
    history: { location: { pathname: '/' } },
    redirectPath: '/path',
  };

  it('should match snapshot', () => {
    const component = mount(
      <MemoryRouter initialEntries={[{ pathname: '/', key: 'testKey' }]}>
        <Widget{...fakeProps} />)
      </MemoryRouter>
    );
    expect(component).toMatchSnapshot();
  });
});

Я получаю сообщение об ошибке:

Нарушение инварианта: A может иметь только один дочерний элемент

Как это можно проверить? Я не хочу использовать «мелкий».

1 Ответ

1 голос
/ 10 июля 2019

У вас есть небольшая опечатка:

  it('should match snapshot', () => {
    const component = mount(
      <MemoryRouter initialEntries={[{ pathname: '/', key: 'testKey' }]}>
        <Widget{...fakeProps} />)  <---HERE
      </MemoryRouter>
    );
    expect(component).toMatchSnapshot();
  });

Должно быть:

  it('should match snapshot', () => {
    const component = mount(
      <MemoryRouter initialEntries={[{ pathname: '/', key: 'testKey' }]}>
        <Widget{...fakeProps} />
      </MemoryRouter>
    );
    expect(component).toMatchSnapshot();
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...