Как я могу издеваться над моим Axios получить запрос и позволить ему возвращать «поддельные» данные? - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь высмеять мой ответ, но мне не удается заставить его работать. У меня есть следующий тест, который, по моему мнению, должен переопределить 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

...