Почему vue-test-utils не может найти дочерний компонент? - PullRequest
1 голос
/ 04 октября 2019

У меня есть следующий код в шаблоне:

<th
    width="0%"
    class="px-3">
    <b-checkbox
        :value="SELECTED_ALL_TEMPLATE"
        @input="TOGGLE_SELECT_ALL_TEMPLATE(!SELECTED_ALL_TEMPLATE)" />
</th>

Я хочу проверить, что пропеллер value соответствует ожидаемому результату SELECTED_ALL_TEMPLATE геттера и вызван TOGGLE_SELECT_ALL_TEMPLATE после того, как input испущено.

Тестовый код:

it('Checkbox test', function () {
    wrapper = shallowMount(TableHeader);
    const checkbox = wrapper.find(Checkbox);
    expect(checkbox.props().value).toBe(getters.SELECTED_ALL_TEMPLATE()); 
    //Error: [vue-test-utils]: find did not return Component, cannot call props() on empty Wrapper
  });

Что я делаю не так?

Обновление :

Я обнаружил странное поведение. Также у меня есть на этой странице дочерний компонент TableTh:

  <TableTh width="10%" 
       :sorting.sync="ordering.id" 
       :ordering-obj="ordering"> 
       {{ $t.certs.table.codeOfTemplate }} 
  </TableTh> 

, и этот тест пройден:

  it('TableTh props', function () { 
    const th = wrapper.find(TableTh); 
    expect(th.props().sorting).toBe(wrapper.vm.ordering.id);
  }); 

Но почему он не работает для Checkbox?

...