Как я могу проверить действие vuex, которое с помощью jest, внутри которого есть вызов API? - PullRequest
1 голос
/ 19 марта 2019

VYEX ASYNC ACTION: это асинхронное действие, которое будет вызываться из компонента, оно состоит из функции fetchGaragesData, которая будет выполнять вызов API для получения данных с сервера.

[ACTION_TYPES.FETCH_CASHLESS_GARAGES]: async (
        { dispatch, commit, state, rootState },
        payload
    ) => {
        commit(MUTATION_TYPES.SET_MISC_KEYS, {
            fetchingCashlessGaragesInitiated: true,
        })
        let { insurerSlug, makeId, rtoCode } = payload
        const url = ApiUrls.getCashlessGarages + `${insurerSlug}/${makeId}`
        const response = await fetchGaragesData(url, rtoCode)
        dispatch(ACTION_TYPES.MODIFY_RTO_WISE_GARAGES_DATA, response)
    },

ОСУЩЕСТВЛЕНИЕ fetchGaragesData: эта функция внутренне вызывает axios get:

export const fetchGaragesData = (url: string, rtoCode: string) => {
    return get(url, {
        rto_code: rtoCode,
        all_states_data: true,
    })
}

Как проверить действие ACTION_TYPES.FETCH_CASHLESS_GARAGES ???

1 Ответ

1 голос
/ 19 марта 2019

У вас может быть ложный ответ API.Итак, в вашем spec-файле вам нужно добавить фиктивный ответ для этого конкретного вызова API.

Включите ваш файл в spec-файл, в котором есть фактический бэкэнд-вызов API.Например:

import someName from 'path of file'

jest.mock('someName', () => ({
 fetchGaragesData: jest.fn((url, rtoCode) =>
  success({ body: 
    Here comes your response body
 }})
)

url и rtoCode должны быть именами переменных, используемых в файле вызовов API.

...