Невозможно щелкнуть Vue Select Box с помощью vue-test-utils

Я не могу "щелкнуть" на этих полях выбора, используя vue-test-utils и Vue 2. Я использую mocha + webpack.

Я определяю это, видя, что visible-change событие никогда не запускается, как следует при нажатии. Вот как выглядит мой spec-файл:

...
const wrapper = mount(EntityItem, { propsData });
const selectBox = wrapper.find("el-select");

// I tried these:
selectBox.trigger("click");
selectBox.trigger("click.native");

В крайнем случае, если это не сработает, мне придется вручную изменить model атрибут для имитации изменения компонента.

----ОБНОВИТЬ----

Когда я настраиваю обратный вызов для события щелчка, я вижу что-то, но я не могу "выбрать" что-либо в этом компоненте выбора ввода.

0 ответов

Компонент , который вы используете, не использует selectэлемент ввода. Чтобы смоделировать выбор варианта, сделайте что-то вроде этого.

wrapper.findAll('.el-select-dropdown__item').at(1).trigger('click'); // simulates clicking of one of the options

если вы хотите смоделировать щелчок по самому выбранному элементу (чтобы отобразить раскрывающийся список). вы можете сделать следующее.

 wrapper.find('.el-select-dropdown').trigger('click');

Приведенный выше ответ Whitespace помог, однако также необходимо, чтобы вы использовали

await Vue.nextTick() 

перед вашим заявлением ожидания. Вот так:

wrapper.findAll('.el-select-dropdown__item').at(1).trigger('click');
await Vue.nextTick();
expect(enterResultBtn.is('[disabled]')).toBe(true);

Это позволяет модели DOM обновлять свой цикл, подробнее здесь

Другие вопросы по тегам