diff --git a/webapp/pages/password-reset.spec.js b/webapp/pages/password-reset.spec.js index 416495910..f96216725 100644 --- a/webapp/pages/password-reset.spec.js +++ b/webapp/pages/password-reset.spec.js @@ -1,3 +1,4 @@ +import Vuex from 'vuex' import { config, mount } from '@vue/test-utils' import PasswordReset from './password-reset.vue' @@ -9,6 +10,11 @@ config.stubs['nuxt-child'] = '' describe('password-reset.vue', () => { let wrapper let mocks + let asyncData + let store + let redirect + let isLoggedIn + beforeEach(() => { mocks = { @@ -17,22 +23,50 @@ describe('password-reset.vue', () => { locale: () => 'en', }, } + asyncData = false + isLoggedIn = false + redirect = jest.fn() }) - describe('mount', () => { - const Wrapper = () => { + describe('mount', () => { + const Wrapper = async () => { + store = new Vuex.Store({ + getters: { + 'auth/isLoggedIn': () => isLoggedIn, + }, + }) + if (asyncData) { + const data = PasswordReset.data ? PasswordReset.data() : {} + const aData = await PasswordReset.asyncData({ + store, + redirect + }) + PasswordReset.data = function() { + return { ...data, ...aData}; + }; + } return mount(PasswordReset, { mocks, localVue, }) } - beforeEach(() => { - wrapper = Wrapper() + it('renders', async () => { + wrapper = await Wrapper() + expect(wrapper.is('div')).toBe(true) }) - it('renders', () => { - expect(wrapper.is('div')).toBe(true) + it('renders with asyncData and not loggedIn', async () => { + asyncData = true + wrapper = await Wrapper() + expect(redirect).not.toHaveBeenCalled() + }) + + it('renders with asyncData and loggedIn', async () => { + asyncData = true + isLoggedIn = true + wrapper = await Wrapper() + expect(redirect).toBeCalledWith('/') }) }) })