Как протестировать vuex с помощью jest

#vue.js #jestjs

Вопрос:

Следующее-это мое index.js файл из папки хранилища, я не закончил разделять файлы для действий, состояния и мутаций, я сделал все это в одном файле index.js

 import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)

export default new Vuex.Store({
state: {
randomMealArray: {},
mealDetails: {},
mealInfo: [],
},

 actions: {
getRandomMeal(context) {
  try {
    axios.get('https://www.themealdb.com/api/json/v1/1/random.php')
      .then(response => {
        console.log('Set_Meal', response.data)
        let randomMealArray = response.data.meals
        context.commit('Set_Meal', randomMealArray)
      })
  } catch (error) {
    console.log(error.message);
    throw error;
  }
},
async getMealDetailsById(context, id) {
  try {
    await axios.get('https://www.themealdb.com/api/json/v1/1/lookup.php?i='   id)
      .then(response => {
        let mealDetails = response.data.meals[0];
        context.commit('setMealDetailsById', mealDetails);
        console.log('mealDetailsfromAPI', mealDetails);

      })

  } catch (error) {
    console.log(error.message);
    throw error;
  }
},
async getSearchResults(context, searchInput) {
  try {
    axios
      .get(
        "https://www.themealdb.com/api/json/v1/1/search.php?s="   searchInput)
      .then((respose) => {
        let mealInfo = respose.data.meals;
        context.commit('setSearchResults', mealInfo);

      });


  } catch (error) {
    console.log(error.message);
    throw error;
  }
},

},
mutations: {
Set_Meal(state, randomMealArray) {
  state.randomMealArray = randomMealArray
},
setMealDetailsById(state, mealDetails) {
  state.mealDetails = mealDetails;

},
setSearchResults(state, payload) {
  state.mealInfo = payload;
}
},
modules: {
}
})
 

пожалуйста, скажите мне, как протестировать этот файл с помощью jest. Я пытаюсь проверить это с помощью некоторого значения mockresolved, но оно выдает ошибку. Я новичок в vue, vuex и тестировании также

Комментарии:

1. Добро пожаловать в SO. Пожалуйста, предоставьте то, что вы пробовали до сих пор. Где твой тест? Каков был результат?

2. То, что вы не связываете обещания цепочкой, делает его едва пригодным для использования и определенно непроверяемым. Так должно быть всегда await axios.get... . Axios следует высмеивать в тестах, для этого есть много библиотек и так далее. Затем действия можно протестировать, просто ожидая их и утверждая результаты в состоянии.