Модульный тест Vuetify v-autocomplete со слотами - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть компонент, который реализует v-autocomplete, но имеет template со слотами вместо выпадающего меню по умолчанию, созданного Vuetify.

 <v-autocomplete
      :items="searchResults"
      :multiple="true"
      :search-input.sync="search"
      hide-no-data
      :loading="loading"
      item-text="name"
      item-value="id"
      label="Search"
      clearable
      data-qa="search-input">
      <template
        slot="item"
        slot-scope="data">
         .... divs and other stuff
      </template>

Теперь я хочу протестировать этот компонент с помощью Jest, но не может для меня жизни.Забавно то, что я вижу, как отображается элемент автозаполнения.Я попытался настроить ввод автозаполнения так:

wrapper.find('[data-qa="search-input"]').setValue('Foo');

, но это не сработало.Я закончил тем, что сделал это:

wrapper.vm.search = 'Foo'

Если я сделаю это, я вижу, что фиктивные элементы устанавливаются в html:

items = "[object Object],[object Object],[object Object]"

и атрибут автозаполнения меняется на searchinput="Foo", но шаблон не существует, как будто он не отображается.Поэтому я не могу проверить всю функциональность выпадающего меню, потому что его там нет.

Есть идеи?

1 Ответ

0 голосов
/ 21 февраля 2019

Ответ состоял в том, что мне нужно было смонтировать компонент вместо мелкого монтажа.Похоже, что v-autocomplete нужно захватить некоторые другие компоненты Vuetify (например, v-select), и при мелком монтировании мы предотвращаем использование этих зависимостей.

...