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