Модульное тестирование действий Vuex, содержащих Vuex.Store.watch - PullRequest
0 голосов
/ 12 декабря 2018

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

...