Как проверить, что пользовательское событие было запущено из дочернего компонента - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть Vue компонент со следующей структурой

// parent-component.vue
<main>
  <component :is="my.component" @custom-event="callback"/>
</main>

Дочерний компонент всегда имеет следующее mixin

// child-shared-mixin.js
export default {
  mounted() {
    this.$emit('custom-event')
  },
}

Вот пример дочернего компонента

// child-component.vue
<script>
  import { ChildSharedMixin } from 'mixins'

  export default {
    mixins: [
      ChildSharedMixin
    ],
  }
</script>

Итак, всякий раз, когда монтируется child, я запускаю событие для родителя, а затем выполняю обратный вызов.

С Jest и Vue Test Utils как я могу проверить, что mixin запустил custom-event?

1 Ответ

0 голосов
/ 09 ноября 2018

emitted () Возвращает объект, содержащий пользовательские события, испускаемые Wrapper vm.

https://vue -test-utils.vuejs.org / апи / упаковщик / # испускается

чтобы проверить дочерний компонент, вы можете сделать:

describe('myComponent',()={
    it('should trigger custom-event on mounted hook',()=>{
        let target=mount(myComponent);
        expect(target.emitted()['custom-event']).toBeTruthy();
    })
})

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

https://vue -test-utils.vuejs.org / апи / упаковщик / trigger.html

...