Как смоделировать метод из функционального компонента в React с помощью jest и Enzyme - PullRequest
2 голосов
/ 09 мая 2020
import React from 'react';

export const HomePage = () => {

     const fetchResults = () => {
          return new Promise((resolve) => {
            Adaptor.fetch();
         });
        }
    const [initialState, dispatch] = useTableState();
    if (initialState.fetchNew) {
        let promise = fetchResults().then((res) => {
            //dispatch
        })
        throw promise;
    }
    return <Content />
}

Мне нужно имитировать метод fetchResults в компоненте домашней страницы, упомянутом выше, таким образом, чтобы он возвращал обработанное обещание, имеющее фиктивный результат json. Пробовал много подходов, но ничего не получается

Один из опробованных подходов был: -

 jest.mock("../components/homePage", () => {
            return {
                fetchResults: () => {
                return  Promise.resolve({data: [{value: 'test'}]});
              },
            };
          });

Может кто-нибудь помочь мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

Вам не хватает возврата по умолчанию. Также вы можете напрямую установить фиктивные данные.

jest.mock("../components/homePage", () => {
  return {
    default: () => {
      return <Content {...mockedData} />;
    },
  };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...