@seredaes

Почему не срабатывает тест vue-test-utils?

5f185192b226a812533854.png

Есть замечательная кнопка, которая отключена, если массив selectedOffers пуст.

Пишу тест.
// проверка названия кнопки - совпало
    expect(wrapper.find("button[disabled='disabled']").text()).toEqual("Disallow selected");
    // проверка есть ли такая кнопка, так уже...ради интереса - есть
    expect(wrapper.find("button[disabled='disabled']").exists()).toBe(true);

    // вношу данные
    wrapper.setData({ "selectedOffers": [1, 2, 3] });
    // проверяю, действительно ли 3 элемента вмассиве
    expect(wrapper.vm.selectedOffers.length).toEqual(3);

<b>    // Вот в этом месте, не должно быть кнопки отключенной, но она есть !!!
    expect(wrapper.find("button[disabled='disabled']").exists()).toBe(false);</b>


5f18524663612507987604.png

Я что-то не понимаю, и нет реактивности в тесте? Т.е. переменная изменилась, а ничего не реагирует или как-то иначе это нужно тестировать? Заранее спасибо всем ответившим.
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
вероятно дело в этом:
https://ru.vuejs.org/v2/guide/reactivity.html#%D0%...
и должно сработать что-то типа
wrapper.vm.nextTick().then(function(){
  expect(wrapper.find("button[disabled='disabled']").exists()).toBe(false)
})

ну или вместо
wrapper.setData({ "selectedOffers": [1, 2, 3] });
использовать
wrapper.vm.selectedOffers = [1, 2, 3];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы