Aquí está mi problema que no puedo resolver:
Me gustaría probar la función yearsDropdownItems de mi componente MonthlyFoodCostModal. Sin embargo, sigo recibiendo este error:
TypeError: Cannot read properties of undefined (reading 'outlet_start_date')¿Cómo puedo establecer un valor para activeOutlet?
Aquí está mi código de componente:
import { createNamespacedHelpers } from "vuex"; const { mapGetters: userGetters } = createNamespacedHelpers("user"); export default { computed: { yearsDropdownItems, ...userGetters([ "activeOutlet" ]) }, }; function yearsDropdownItems() { const outletStartYear = moment(this.activeOutlet.outlet_start_date).year(), outletEndYear = moment(this.activeOutlet.outlet_data_validity).year(), years = this.$utils.range(outletStartYear, outletEndYear); return this.$utils.sortDesc(years); }Aquí está mi código de prueba:
import { mount } from "@vue/test-utils" import MonthlyFoodCostModal from "@/components/monthlyFoodCostModal/monthlyFoodCostModal.js" import User from "@/store/Module/User/userModule.js" import Vue from "vue" import Vuex from "vuex" Vue.use(Vuex) let state; let store; describe('Unit test MonthlyFoodCostModal.vue', () => { beforeEach(() => { state = {} store = new Vuex.Store({ modules: { User: { state, getters: User.getters, namespaced: true } } }) }) it('test yearsDropdownItems method', async() => { const wrapper = mount(MonthlyFoodCostModal, {store}) expect(wrapper.vm.yearsDropdownItems).toBe("?") }) })Mi módulo se comporta de la siguiente manera:
const initialState = () => ({ user: { firstName: "", lastName: "", role: "" }, properties: [], activeProperty: null, activeOutlet: null, selectedDevicesFilter: [], }); export default { namespaced: true, state: initialState(), getters: { activeOutlet: state => state.activeOutlet } }