Тестовые утилиты Vue. Как тестировать родительский метод, вызывающий внутри дочернего?

#vue.js #vue-test-utils

Вопрос:

Я пытаюсь протестировать свой дочерний компонент, но у меня проблема с родительским методом. Я использую $slot $parent в своем коде. Я получаю эту ошибку, когда срабатывает метод:

 expect(jest.fn()).toHaveBeenCalled()   Expected number of calls: gt;= 1  Received number of calls: 0  

Я вызываю родительский метод из дочернего:

 // html lt;div @click="onClick"gt;  lt;span data-qa="text"gt;{{ text }}lt;/spangt; lt;/divgt;  // script onClick() {  ...  this.$parent.someParentMethod() }  

Родительский метод:

 methods: {  someParentMethod() {  this.$slots.default.forEach(({ componentInstance }) =gt; {  if (componentInstance) {  componentInstance.$data.localActive = false  componentInstance.$data.error = false  }  })  } }  

Мой тест:

 const createComponent = (options = {}) =gt; {  wrapper = shallowMount(Child, {  parentComponent: Parent  }) }  test('Testing click', async () =gt; {  createComponent()   const parentMethod = jest.spyOn(wrapper.vm.$parent, 'someParentMethod')  const childDomElement = wrapper.find('[data-qa="text"]') // child dom el  await childDomElement.trigger('click')   await wrapper.vm.$nextTick()  expect(parentMethod).toHaveBeenCalled() })  

Триггер работает правильно, но parentMethod не запускается. Как я могу это исправить?