Promise.resolve возвращает неопределенное значение из шутки - PullRequest
0 голосов
/ 06 июня 2019

У меня есть функция, которая выполняет вызов API и на основе того, что будет возвращено при первом вызове API, выполняет второй вызов API.Но первый API всегда возвращает undefined

getTotalCount = async () => {
    const { showCountCallBack, showCount } = this.props;
    try {
      const response = await showCount();

      const count = isEmpty(response.result);

      if (count) {
        console.log(" success");
      } else {
        showCountCallBack({ ...this.state });
      }
    } catch (e) {
      console.log("error");
    }
  };

describe("component", () => {
  let shallowComponent;
  let shallowComponentInstance;
  const showCountMock = jest.fn(() => Promise.resolve({ result: [] }));

  const showCountCallBackMock = jest.fn(() => Promise.resolve({ result: [] }));

  beforeEach(() => {
    showCountMock.mockReset();

    shallowComponent = shallowWithTheme(
      <Component
        showCount={showCountMock}
        showCountCallBack={showCountCallBackMock}
      />
    );
    shallowComponentInstance = shallowComponent.instance();
  });

  it("viewMapping", () => {
    shallowComponentInstance.getTotalCount();
    expect(showCountMock).toHaveBeenCalledTimes(1);
    expect(showCountCallBackMock).toHaveBeenCalledTimes(1);
  });
});

1 Ответ

0 голосов
/ 06 июня 2019

После борьбы в течение нескольких часов.Я нашел причину.Это было mockReset причиной этой проблемы.

Это также сбрасывало возвращаемое значение.поэтому я просто удалил mockReset из кода.Лучше использовать mockClear здесь

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