Fix code coverage in Login.vue test

This commit is contained in:
Wolfgang Huß 2022-05-02 08:17:03 +02:00
parent c574e96dc0
commit 31dfdc1337

View File

@ -204,18 +204,22 @@ describe('Login', () => {
})
describe('login fails', () => {
const createError = async (errorMessage) => {
apolloQueryMock.mockRejectedValue({
message: errorMessage,
})
wrapper = Wrapper()
jest.clearAllMocks()
await wrapper.find('input[placeholder="Email"]').setValue('user@example.org')
await wrapper.find('input[placeholder="form.password"]').setValue('1234')
await flushPromises()
await wrapper.find('form').trigger('submit')
await flushPromises()
}
describe('login fails with "User email not validated"', () => {
beforeEach(async () => {
apolloQueryMock.mockRejectedValue({
message: 'GraphQL error: User email not validated',
})
wrapper = Wrapper()
jest.clearAllMocks()
await wrapper.find('input[placeholder="Email"]').setValue('user@example.org')
await wrapper.find('input[placeholder="form.password"]').setValue('1234')
await flushPromises()
await wrapper.find('form').trigger('submit')
await flushPromises()
await createError('GraphQL error: User email not validated')
})
it('hides the spinner', () => {
@ -244,16 +248,7 @@ describe('Login', () => {
describe('login fails with "User has no password set yet"', () => {
beforeEach(async () => {
apolloQueryMock.mockRejectedValue({
message: 'GraphQL error: User has no password set yet',
})
wrapper = Wrapper()
jest.clearAllMocks()
await wrapper.find('input[placeholder="Email"]').setValue('user@example.org')
await wrapper.find('input[placeholder="form.password"]').setValue('1234')
await flushPromises()
await wrapper.find('form').trigger('submit')
await flushPromises()
await createError('GraphQL error: User has no password set yet')
})
it('shows error title, subtitle, login button', () => {
@ -277,6 +272,33 @@ describe('Login', () => {
expect(toastErrorSpy).toBeCalledWith('error.no-account')
})
})
describe('login fails with an unknow error', () => {
beforeEach(async () => {
await createError(' Unknow error')
})
it('shows error title, subtitle, login button', () => {
expect(wrapper.vm.showPageMessage).toBeTruthy()
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
expect(wrapper.find('.test-message-subtitle').text()).toBe(
'error.unknown-error Unknow error',
)
expect(wrapper.find('.test-message-button').text()).toBe('settings.password.reset')
})
it('button link directs to "/forgot-password"', () => {
expect(wrapper.find('.test-message-button').attributes('href')).toBe('/forgot-password')
})
it.skip('click redirects to "/forgot-password"', () => {
// expect(mockRouterPush).toBeCalledWith('/forgot-password')
})
it('toasts the error message', () => {
expect(toastErrorSpy).toBeCalledWith('error.unknown-error Unknow error')
})
})
})
})
})