Как я могу решить эту ошибку при попытке проверить компонент VUE? - PullRequest
0 голосов
/ 28 декабря 2018

При попытке протестировать компонент Logout.vue у меня возникают ошибки в связи с «dispatch».

GitHub Repository: https://github.com/SergioFerrera/jest_vuejs

Код ошибки:

TypeError: Cannot read property 'push' of undefined

Я попытался повторить код здесь: https://medium.com/@lachlanmiller_52885/mocking-vuex-in-vue-unit-tests-b6eda1c4d301

logout.test.js

import Vuex from 'vuex'
import { shallow, createLocalVue } from 'vue-test-utils'
import Logout from "../../src/app/components/Logout.vue";

const localVue = createLocalVue()
localVue.use(Vuex)

describe('Logout.vue', () => {
  let store
  let logout

  beforeEach(() => {
    logout = {
      destroyToken: jest.fn()
    }
    store = new Vuex.Store({
      logout
    })  
  })

  it('comprobando llamadas a destroyToken', () => {
    const wrapper = shallow(Logout, {
      store,
      localVue
    })
    expect(logout.destroyToken.mock.calls).toHaveLength(1)
  })
})

Logout.vue

<template>
</template>
<script>
  export default {
    created(){
      this.$store.dispatch('destroyToken')
      .then(response => {
        this.$router.push({ name: 'Inicio'})
      })
    }

  }
</script>
...