Estoy probando el proyecto Vue con vue-test-utils y jest.
... export default Vue.extend({ components: { MemoInputAndButton, DomeMemoLine }, data (): { memoLineList: Array<IMemoLine> } { return { memoLineList: [] } }, computed: { ...mapGetters('fraudTransactionState', { fraudTransactionDetail: FraudTransactionGetters.FraudTransactionDetail }) }, created: async function () { await this.setMemoLineList() }, methods: { ...mapActions('fraudTransactionState', { postFraudTransactionMemo: FraudTransactionActions.PostFraudTransactionMemo }), async onMemoInputted (input: string): Promise<void> { await this.postMemo(input) }, ...MemoTimelineSection.vue
Utiliza vuex en módulos con espacio de nombres: ¡verdadero!
const localVue = createLocalVue() localVue.use(ElementUI) localVue.use(Vuex) describe('MemoTimelineSection', () => { const div = document.createElement('div') div.id = 'root' document.body.appendChild(div) let wrapper let getter = { 'FRAUD_STATICS': () => { }, 'FRAUD_TRANSACTIONS': () => { }, 'FRAUD_TRANSACTION_DETAIL': () => { } } let store beforeEach(() => { ... const div = document.createElement('div') div.id = 'root' document.body.appendChild(div) ... store = new Vuex.Store({ modules: { fraudTransactionState: { getter, namespaced: true } } })MemoTimelineSection.test.js
y la tienda vuex real es
export const store: StoreOptions<RootState> = { state: { ... }, mutations: { ... }, actions: {}, modules: { transfersStore, fraudTransactionState }, getters: {} } export default new Vuex.Store<RootState>(store)índice.ts
Cuando ejecuto el archivo de prueba,
● Test suite failed to run TypeError: Cannot read properties of undefined (reading 'getters') 33 | console.log('run') 34 | > 35 | export default new Vuex.Store<RootState>(store) | ^ 36 |ocurre.
Cuando elimino mapGetters y mapActions del código de Vue, este error no aparece, así que creo que está relacionado con mapGetters o mapActions o algo relacionado con Vuex...
El otro código, que no usa la tienda vuex en los módulos (solo en las raíces) y está compuesto por un componente de clase vue, se ejecuta correctamente aunque también prueba vuex.
¿Cómo puedo resolverlo? Gracias por adelantado.