JEST: "TypeError: Cannot read property 'platform' of undefined"
-
Hello guys, my tests sometimes is working and sometimes not. I don’t know why, but i’m getting this error in console, and the only platform i have is:
<q-page class="row justify-center bg-neutral gc-bg-bottom-mobile" :class="{'gc-bg-bottom': !$q.platform.is.mobile && $q.screen.gt.sm, 'gc-bg-bottom-mobile': $q.platform.is.mobile || $q.screen.lt.sm, }" >
The test:
import { createLocalVue, shallowMount, Wrapper } from '@vue/test-utils' import Vuex from 'vuex' import * as All from 'quasar' import Vuelidate from 'vuelidate' import GcLogin from '../GcLogin.vue' const localVue = createLocalVue() localVue.use(Vuelidate) localVue.use(Vuex) localVue.use(All.Quasar) fdescribe('GcCreateAccount', () => { let wrapper: Wrapper<GcLogin> let component: any beforeEach(() => { wrapper = shallowMount(GcLogin, { localVue }) component = wrapper.vm }) it('should create', () => { expect(wrapper).toBeTruthy() }) it('should display error message when is invalid', () => { jest.spyOn(component.gc, 'notify') component.login() expect(component.gc.notify).toHaveBeenCalledWith( expect.objectContaining({ icon: 'error', message: 'Preencha corretamente os campos obrigatórios (*)' }) ) }) it('should be false when the required fields are filled ', async () => { wrapper.setData({ user: { email: 'myemail@email.com', password: 'teste123' } }) await component.$nextTick() await wrapper.vm.$forceUpdate() expect(component.$v.user.$invalid).toBeFalsy() }) })
Console:
yarn run v1.22.10 $ jest --updateSnapshot --watch PASS src/pages/login/tests/gcLogin.spec.ts GcCreateAccount √ should create (14 ms) √ should display error message when is invalid (13 ms) √ should be false when the required fields are filled (73 ms) console.error [Vue warn]: Error in render: "TypeError: Cannot read property 'platform' of undefined" found in ---> <GcLogin> <GcLogin> <Root> at warn (node_modules/vue/dist/vue.runtime.common.dev.js:621:15) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1880:5) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) console.error TypeError: Cannot read property 'platform' of undefined at Proxy.render (C:\Users\Rafael\Documents\goclin\goclin-beta\src\shared\components\generic\gcInitialsLayout.vue:90:241) at VueComponent.Vue._render (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3538:22) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:21) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at new Watcher (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4454:12) at mountComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4061:3) at VueComponent.Object.<anonymous>.Vue.$mount (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:8392:10) at init (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3112:13) at createComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5958:9) at createElm (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5905:9) at VueComponent.patch [as __patch__] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:6494:9) at VueComponent.Vue._update (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3936:19) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:10) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at Watcher.run (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4540:22) at flushSchedulerQueue (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4298:13) at Array.<anonymous> (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1976:12) at flushCallbacks (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1902:14) at Timeout.task [as _onTimeout] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\jsdom\lib\jsdom\browser\Window.js:391:19) at listOnTimeout (internal/timers.js:549:17) at processTimers (internal/timers.js:492:7) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1884:13) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12) console.error [Vue warn]: Error in render: "TypeError: Cannot read property 'platform' of undefined" found in ---> <GcLogin> <GcLogin> <Root> at warn (node_modules/vue/dist/vue.runtime.common.dev.js:621:15) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1880:5) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) console.error TypeError: Cannot read property 'platform' of undefined at Proxy.render (C:\Users\Rafael\Documents\goclin\goclin-beta\src\shared\components\generic\gcInitialsLayout.vue:90:241) at VueComponent.Vue._render (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3538:22) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:21) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at new Watcher (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4454:12) at mountComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4061:3) at VueComponent.Object.<anonymous>.Vue.$mount (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:8392:10) at init (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3112:13) at createComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5958:9) at createElm (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5905:9) at VueComponent.patch [as __patch__] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:6494:9) at VueComponent.Vue._update (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3936:19) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:10) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at Watcher.run (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4540:22) at flushSchedulerQueue (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4298:13) at Array.<anonymous> (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1976:12) at flushCallbacks (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1902:14) at Timeout.task [as _onTimeout] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\jsdom\lib\jsdom\browser\Window.js:391:19) at listOnTimeout (internal/timers.js:549:17) at processTimers (internal/timers.js:492:7) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1884:13) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12) console.error [Vue warn]: Error in render: "TypeError: Cannot read property 'platform' of undefined" found in ---> <GcLogin> <GcLogin> <Root> at warn (node_modules/vue/dist/vue.runtime.common.dev.js:621:15) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1880:5) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) console.error TypeError: Cannot read property 'platform' of undefined at Proxy.render (C:\Users\Rafael\Documents\goclin\goclin-beta\src\shared\components\generic\gcInitialsLayout.vue:90:241) at VueComponent.Vue._render (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3538:22) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:21) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at new Watcher (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4454:12) at mountComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4061:3) at VueComponent.Object.<anonymous>.Vue.$mount (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:8392:10) at init (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3112:13) at createComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5958:9) at createElm (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:5905:9) at VueComponent.patch [as __patch__] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:6494:9) at VueComponent.Vue._update (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:3936:19) at VueComponent.updateComponent (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4054:10) at Watcher.get (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4465:25) at Watcher.run (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4540:22) at flushSchedulerQueue (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:4298:13) at Array.<anonymous> (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1976:12) at flushCallbacks (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\vue\dist\vue.runtime.common.dev.js:1902:14) at Timeout.task [as _onTimeout] (C:\Users\Rafael\Documents\goclin\goclin-beta\node_modules\jsdom\lib\jsdom\browser\Window.js:391:19) at listOnTimeout (internal/timers.js:549:17) at processTimers (internal/timers.js:492:7) at logError (node_modules/vue/dist/vue.runtime.common.dev.js:1884:13) at globalHandleError (node_modules/vue/dist/vue.runtime.common.dev.js:1875:3) at handleError (node_modules/vue/dist/vue.runtime.common.dev.js:1835:5) at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3540:7) at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21) at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25) at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12) Test Suites: 1 passed, 1 total Tests: 3 passed, 3 total Snapshots: 0 total Time: 6.802 s Ran all test suites related to changed files.