Тестовый аксиос Действия создателей с создателями действий в теле ответа - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь протестировать действие, которое сначала отправляет серверу запрос на выборку данных, после извлечения данных в теле ответа есть другой создатель Action, отправленный для извлечения других данных.

При написании тестов действий тесты не охватывают часть создателей действий.

Это мой создатель действий:

export const createCommentAction = (comment, slug) => dispatch => {

    dispatch(requestLoadingAction(true));

    addToken();

    // noinspection JSUnresolvedFunction
    return axios.post(`${API_URLS.FETCH_ALL_ARTICLES}${slug}/comment/`, {comment})
        .then(resp => resp.data)
        .then(async response => {
            // noinspection JSUnresolvedVariable
            await dispatch(fetchAllArticles());
            dispatch(viewOneArticleActionCreator(slug));
            notify.show('You have created a comment successfully', 'success', 5000);

        }).catch(error => {
            dispatch(requestLoadingAction(false));

            notify.show(`There's a problem with creating a comment .${error}`, 'error', 4000);
        });
};

Это тест, который высмеивает эту конечную точку:

it('should test fetch comments per article', () => {
        moxios.stubRequest(API_URLS.FETCH_ALL_ARTICLES+'great-work/comment/', {
            status: 201,
            response: { comments: {
                    id: 16,
                    body: "How can I rebase on 2 different branches",
                    article: "great-work"
                }
            },


    });

        const expecting = {"payload": {"slug": "slug"}, "type": "VIEW_ONE_ARTICLE"};
        const expectedActions = [
            {'isRequestLoading': true, 'type': 'REQUEST_LOADING'},
            {'payload': {}, 'type': 'ADD_MANY_FROM_SERVER'},
            {'isRequestLoading': false, 'type': 'REQUEST_LOADING'}
        ];



        store.dispatch(createCommentAction({"comment": {"body": "Thanks for the nice article. "}}, 'great-work'))
            .then(() => {
                expect(store.getActions()).toEqual(expectedActions);
            });

        expect(store.dispatch(viewOneArticleActionCreator('slug'))).toEqual(expecting);

        jest.mock('react-notify-toast');
    });

Таким образом, некоторые строки кода выглядят проверенными / покрытыми, но есть некоторые строки, которые не покрыты, как показано ниже:

dispatch(viewOneArticleActionCreator(slug));
            notify.show('You have created a comment successfully', 'success', 5000);

Выше приведены строки, которые не охвачены. Как я могу покрыть их шуткой / энимом.

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