Обработка асинхронного вызова nextTick () в vue-test-utils - PullRequest
0 голосов
/ 11 марта 2019

Я хочу проверить функцию, которая использует Vue.nextTick ().
Примерно так:

toggleEdit () {
  this.isEditOn = !this.isEditOn;
  if (this.isEditOn) {
    this.$nextTick(() => {this.$refs.editable.focus();});
  }
}

Я написал асинхронный тест, который ждет обещания от nextTick. Все тесты пройдены, но у меня есть ошибка: «Ошибка в nextTick:« Ошибка типа: Не удается прочитать свойство 'focus' из undefined ". Я понятия не имею, что происходит, когда тест является синхронным toogleEdit работает нормально.

Вот пример теста:

it('activate inline edit and change isEditOn state to true', async () => {
  wrapper.vm.toggleEdit();
  await wrapper.vm.$nextTick();
  expect(wrapper.find('input').element).toBe(document.activeElement);
  expect(wrapper.vm.isEditOn).toBe(true);
});

Заранее спасибо за любую помощь.

...