У меня возникли проблемы с запуском события «изменение» в приемочном тесте Ember.
У меня есть ползунок диапазона с наблюдаемым свойством «значение». При изменении ползунок отправляет запрос API, который обновляет URL-адрес с параметрами на основе значения ползунка.
Я могу изменить значение ползунка в своем тесте с помощью jQuery, который успешно обновляет ползунок в пользовательском интерфейсе...
$("#slider").val(3.0).change();
... но событие изменения не запускается, поэтому нет вызова API. Эта же настройка отлично работает для аналогичных тестов, где я могу использовать «щелчок» или «заполнение» для запуска запроса.
Я пробовал использовать как цикл выполнения, так и вспомогательную функцию triggerEvent (см. ниже), но мне не повезло.
// 1. using the run loop -- updates UI, but no change event fired
Ember.run(function() {
$("#gpa-slider").val(3.0).change();
});
andThen(() => {
assert.equal(currentURL(), "/athletes?gpa=3.0")
});
//2. using triggerEvent helper --
// doesn't update UI, slider value, or trigger change event
triggerEvent('#gpa-slider', 'change', {value: 3.8} )
andThen(() => {
assert.equal(currentURL(), "/athletes?gpa=3.0")
});
Я неправильно настроил triggerEvent()? Есть ли лучший способ справиться с этим?