Как бы я проверил параметры маршрута маршрутизатора реагирования в библиотеке реагирования-тестирования? - PullRequest
0 голосов
/ 12 апреля 2019

Я использую маршрутизатор redux и реагировать.

Я хочу проверить, отображается ли на странице параметр маршрута.

test('route param is displayed', async () => {
  const { queryByText } = customRender(
    <EditCard />,
    {
      route: '/card/1554990887217',
    }
  );
const cardId = queryByText(/1554990887217/);
await waitForElement(() => cardId);
})

мой настраиваемый маршрутизатор обертки рендеринга и резервирование выглядят так:

export const customRender = (
  ui,
  {
    route = '/',
    history = createMemoryHistory({ initialEntries: [route] }),
    initialState,
    store = createStore(rootReducer, initialState),
    ...options
  } = {}
) => ({
  ...rtl(
    <Provider store={store}>
      <Router history={history}>{ui}</Router>
    </Provider>,
    options
  ),
  history,
});

Параметр маршрута просто не отображается в тесте.Это просто ошибки с тайм-аутом.

Он работает на странице, хотя, как и во всем, работает как положено, если я запускаю приложение и тестирую его вручную.

1 Ответ

1 голос
/ 12 апреля 2019

Разобрался.

Я не осознавал, что вам также нужно пройти маршрут.

const { queryByText } = render(
    <Route path="/card/:cardId">
      <EditCard />
    </Route>,
    {
      route: '/card/1554990887217',
    }
  );

Если вы не используете избыточность или не хотите писатьДля пользовательского рендера есть более простой способ сделать это здесь https://react -testing-examples.com / jest-rtl / реагирующий маршрутизатор /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...