У меня есть хранилище Vuex и действие, которое возвращает обещание, которое в основном устанавливает this.watch()
внутри и отклоняет или разрешает только при изменении свойства отслеживаемого состояния.this
внутри действия относится к экземпляру магазина, конечно.
Я пытаюсь выяснить, как написать модульный тест Jest для этого действия, потому что большая часть логики происходит внутри обратного вызова watch и this
не определено, так как я тестирую действие как обычную функцию JS (изолированно).
Действия выглядят так:
pickCard ({ commit, dispatch, getters, rootGetters }) {
commit('showCardPicker')
return new Promise((resolve, reject) => {
const unwatch = this.watch(
state => state.cardPickerVisible,
() => {
unwatch()
// removed magic
return resolve()
}
)
})
}
Представьте, что игрок должен выбратькарта и пока сборщик карт открыт, я не хочу выполнять обещание.Изменение state.cardPickerVisible
происходит из-за другой мутации, которая не отображается.
Google сегодня не слишком дружит со мной ... Я не так часто пишу здесь, поэтому, пожалуйста, дайте мне знать, какую информацию вынужно помимо всего прочего!