тестирование создателя действий не выполнено - PullRequest
0 голосов
/ 12 сентября 2018

При тестировании моего создателя действий я получаю следующую ошибку:

expect(`jest.fn()`).toHaveBeenCalledWith(expected)
Expected mock function to have been called with:
  ["/baselist/list/12345"]
But it was not called.

Моя тестовая функция выглядит следующим образом:

describe("fetchBases", () => {
    it("should return the bases created by the current user", () => {
        const bases = [];

        global.fetch = jest.fn().mockImplementation(() =>
            Promise.resolve({
                ok: true,
                json() {
                    return bases;
                }
            })
        );
        const dispatch = jest.fn();
        const creatorId = "12345";
        const access_token = "IUDUHADBABwbdpi";

        return fetchBasesByCreatorId(creatorId, access_token)(dispatch).then(() => {
            expect(fetch).toHaveBeenCalledWith(`/baselist/list/${creatorId}`);
            expect(dispatch).toHaveBeenCalledWith(
                fetchBasesByCreatorIdSuccess(bases)
            );
        });
    });
});

Я новичок в функциональном тестировании, поэтому я неЯ уверен, что мне нужно указать creatorId и access_token, но мой реальный создатель действий принимает эти два параметра.Не уверен, какую другую информацию я должен предоставить, чтобы сделать проблему более ясной.Фактический создатель функции выглядит следующим образом:

export const fetchBasesByCreatorId = (creatorId, access_token) => dispatch => {
    dispatch(fetchBasesByCreatorIdRequest());
    return fetch(`${API_BASE_URL}/baselist/list/${creatorId}`, {
        method: "GET",
        headers: {
            authorization: `Bearer ${access_token}`
        }
    })
        .then(res => {
            if (!res.ok) {
                return Promise.reject(res.statusText);
            }
            return res.json();
        })
        .then(bases => dispatch(fetchBasesByCreatorIdSuccess(bases)))
        .catch(error => dispatch(fetchBasesByCreatorIdError(error)));
};

Я хочу пройти очень поверхностный тест, он не должен проходить слишком глубоко.

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