0

Vue $root インスタンスによって発行されたイベントをリッスンするコンポーネントがあります。

export default {
   data() {
     return {
       name: ''
     }

   },
   methods: {
     openModal(name) {
       this.name = name
     }
   },
   mounted() {
     this.$root.$on('open-modal', name => {
       this.openModal(name);
     });
   }
 }

そして、そのイベントを呼び出している別の場所にコードがあります。

this.$root.$emit('open-modal', 'some-name');

$root でそのイベントを呼び出し、イベントが呼び出されたことをアサートする単体テストを作成するにはどうすればよいですか? Vue テスト ユーティリティhttps://vue-test-utils.vuejs.org/en/を使用していますが、イベントを呼び出す方法が見つかりません。

これを試しましたが、うまくいきません。

it('sets the modal name on the open-modal event', () => {
    const wrapper = mount(Modal);
    wrapper.vm.$root.$emit('open-modal', 'my-modal')
    expect(wrapper.vm.$data.name).to.equal('my-modal');
  });
4

1 に答える 1