Как определить, была ли вложенная функция вызвана с помощью jest.fn ()? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть удобный набор apiHelpers.Одной из функций является обертка вокруг метода get axios getWrapper

const getWrapper = (url) => (
  (endpoint, headers={}) => (
    axios.get(
      `${url}${endpoint}`,
      {headers: { ...getHeaders(), ...headers }}       
    )
  )
);

Для вызовов без аутентификации у меня есть функция getUnauthenticatedApiHelper, которая вызывает getWrapper.getWrapper делает несколько вещей, одна из которых объединяет предоставленную конечную точку с BASE_URL, который является переменной env.

export const getUnauthenticatedApiHelper = (endpoint, headers) => getWrapper(BASE_URL)(endpoint, headers);

Мой тест вызывает getUnauthenticatedApiHelper и ожидает, что затем он вызывает getWrapper.

describe('apihelpers', () => {
  test('getUnauth', () => {
    const getWrapper = jest.fn();
    var wtf = getUnauthenticatedHelper('end/point/');
    console.log(wtf);
    expect(getWrapper).toHaveBeenCalled();
  });
});

Когда я выхожу из результатов, я вижу, что конечная точка была правильно объединена с BASE_URL, однако мой тест не проходит с ошибкой Expected mock function to have been called, but it was not called.

Является ли этоневажно, проверять или нет, не имеет смысла, потому что я просто пытаюсь понять, как эффективно использовать шутки.Я экспериментировал с этим в онлайн-реплее - и независимо от того, что я делаю, я продолжаю сталкиваться с проблемой не вызывать getWrapper, что заставляет меня поверить, что есть что-то фундаментальное, что я неправильно понимаю в jest.fn () -так что мне не хватает и как мне проверять, что getWrapper называется?

Вот онлайн-ответ того, что я экспериментировал с

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