Я пытаюсь высмеять мой ответ, но мне не удается заставить его работать. У меня есть следующий тест, который, по моему мнению, должен переопределить Axios.get в коде внизу этой страницы и просто вернуть true.
import actions from '../store/dashboard/actions';
describe('actions', () => {
it('getSprintInfo', async () => {
let _url = 'url of the route';
let _body = {
team: 'unexpectables'
};
jest.mock("axios", () => ({
get: (_url, _body) => {
return new Promise((resolve) => {
resolve(true)
})
}
}));
const commit = jest.fn();
const state = jest.fn();
await actions.getSprintInfo( { commit, state} );
expect(commit).toHaveBeenCalledWith("SET_SPRINT", true);
});
});
Это код, который я хочу проверить: так что, по моему мнению, axios.get не должен выполняться во время тестирования, а ответ должен иметь значение TRUE, которое я установил в jest.mock
export default {
getSprintInfo: ({ commit, state }) => {
commit('SET_SPRINT', {
name: 'Laden...',
goal: 'Laden...',
});
axios
.get(settings.routes.route('v1.team.home', {
team: state.team.name,
}))
.then((response) => {
commit('SET_SPRINT', response.data);
})
.catch((error) => {
console.log(error);
});
},
Ошибка, которую я получаю, не может прочитать имя свойства undefined, поэтому он все еще выполняет axios.get
Может кто-нибудь помочь мне?
Я следовал следующему уроку: https://lmiller1990.github.io/vue-testing-handbook/vuex-actions.html#testing-for-the-api-error
Что я в итоге хочу проверить, так это когда я вызываю свое действие Vuex getsprintinfo, если оно правильно хранит данные ответов в хранилище