Инициированное событие на кнопке b не отображается на wrapper.emitted () - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в тестировании компонентов vue, и сейчас я пытаюсь проверить, что нажатие компонента b вызывает событие и вызывает метод.

Похоже, что тест не пройден, потому что щелчок'событие не срабатывает.

Также обратите внимание, что я использую Nuxt.js

Компонент, содержащий кнопку b, следующий:

<template>
  <div>
    <b-form-input name="username" type="text" v-model="username"></b-form-input>
    <b-form-input name="password" type="password" v-model="password"></b-form-input>
    <b-button @click="login">Login</b-button>
  </div>
</template>

<script>
import { mapActions } from "vuex";

export default {
  data() {
    return {
      username: "",
      password: ""
    };
  },
  methods: {
    ...mapActions({
      dispatchLogin: "auth/login"
    }),
    login: () => {
      const response = this.dispatchLogin(this.username, this.password);
      response.then(this.$router.push("/dashboard"));
    }
  }
};
</script>

Итест написан так:

    test('call login when Login button gets clicked', async () => {

        expect.assertions(2);

        moxios.stubRequest('/api/auth/login', {
            response: 200
        });

        const store = new Vuex.Store(storeConfig);
        const mocks = {
            login: jest.fn()
        }
        const wrapper = shallowMount(login, { localVue, store, mocks });
        debugger;
        // Note that b-button is stubbed as <button></button>
        wrapper.find('button').trigger('click');  

        await flushPromises()

        expect(wrapper.emitted('click')).toHaveLength(1);
        expect(auth.actions.login).toHaveBeenCalledTimes(1);
    });

Проблема в том, что я не могу найти никакого события щелчка в wrapper.emitted ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...