У меня есть удобный набор 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
называется?
Вот онлайн-ответ того, что я экспериментировал с