From 95746a732402b7b8d9427c2a3ef52e9f5a035e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Wed, 20 Apr 2022 13:31:50 +0200 Subject: [PATCH] Refactor Message tests --- .../src/components/Message/Message.spec.js | 148 ++++++++++-------- frontend/src/components/Message/Message.vue | 15 +- frontend/src/pages/ForgotPassword.spec.js | 28 +--- 3 files changed, 87 insertions(+), 104 deletions(-) diff --git a/frontend/src/components/Message/Message.spec.js b/frontend/src/components/Message/Message.spec.js index 9d65e792c..276e54cc4 100644 --- a/frontend/src/components/Message/Message.spec.js +++ b/frontend/src/components/Message/Message.spec.js @@ -1,101 +1,117 @@ import { mount } from '@vue/test-utils' -import Thx from './Message' +import Message from './Message' const localVue = global.localVue -const createMockObject = (comingFrom) => { - return { - $t: jest.fn((t) => t), - $route: { - params: { - comingFrom, - }, - }, - } +const propsData = { + kind: 'forgot-password-success', +} + +// Wolle const createMockObject = () => { +// return { +// $t: jest.fn((t) => t), +// $route: { +// params: { +// comingFrom, +// }, +// }, +// } +// } +const mocks = { + $t: jest.fn((t) => t), } describe('Message', () => { let wrapper - const Wrapper = (mocks) => { - return mount(Thx, { localVue, mocks }) + const Wrapper = () => { + return mount(Message, { localVue, mocks, propsData }) } describe('mount', () => { beforeEach(() => { - wrapper = Wrapper(createMockObject('forgotPassword')) + wrapper = Wrapper() }) - it('renders the thx page', () => { + it('renders the component', () => { expect(wrapper.find('div.header').exists()).toBeTruthy() }) - it('renders the title', () => { - expect(wrapper.find('p.h1').text()).toBe('site.thx.title') - }) - }) - - describe('coming from /forgot-password', () => { - beforeEach(() => { - wrapper = Wrapper(createMockObject('forgotPassword')) - }) - - it('renders the thanks text', () => { - expect(wrapper.find('p.h4').text()).toBe('site.thx.email') - }) - - it('renders the thanks redirect button', () => { - expect(wrapper.find('a.btn').text()).toBe('login') + it('renders title, subtitle, and button text', () => { + expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.title') + expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.email') + expect(wrapper.find('.test-message-button').text()).toBe('login') }) it('links the redirect button to /login', () => { + // Wolle console.log(wrapper.html()) expect(wrapper.find('a.btn').attributes('href')).toBe('/login') }) }) - describe('coming from /reset-password', () => { - beforeEach(() => { - wrapper = Wrapper(createMockObject('resetPassword')) - }) + // Wolle: test 'code' prop and have a look if there is other important stuff uncommented below - it('renders the thanks text', () => { - expect(wrapper.find('p.h4').text()).toBe('site.thx.reset') - }) + // Wolle describe('coming from /forgot-password', () => { + // beforeEach(() => { + // wrapper = Wrapper(createMockObject('forgotPassword')) + // }) - it('renders the thanks redirect button', () => { - expect(wrapper.find('a.btn').text()).toBe('login') - }) + // it('renders the thanks text', () => { + // expect(wrapper.find('p.h4').text()).toBe('site.thx.email') + // }) - it('links the redirect button to /login', () => { - expect(wrapper.find('a.btn').attributes('href')).toBe('/login') - }) - }) + // it('renders the thanks redirect button', () => { + // expect(wrapper.find('a.btn').text()).toBe('login') + // }) - describe('coming from /register', () => { - beforeEach(() => { - wrapper = Wrapper(createMockObject('register')) - }) + // it('links the redirect button to /login', () => { + // expect(wrapper.find('a.btn').attributes('href')).toBe('/login') + // }) + // }) - it('renders the thanks text', () => { - expect(wrapper.find('p.h4').text()).toBe('site.thx.register') - }) - }) + // describe('coming from /reset-password', () => { + // beforeEach(() => { + // wrapper = Wrapper(createMockObject('resetPassword')) + // }) - describe('coming from /login', () => { - beforeEach(() => { - wrapper = Wrapper(createMockObject('login')) - }) + // it('renders the thanks text', () => { + // expect(wrapper.find('p.h4').text()).toBe('site.thx.reset') + // }) - it('renders the thanks text', () => { - expect(wrapper.find('p.h4').text()).toBe('site.thx.activateEmail') - }) + // it('renders the thanks redirect button', () => { + // expect(wrapper.find('a.btn').text()).toBe('login') + // }) - it('renders the thanks redirect button', () => { - expect(wrapper.find('a.btn').text()).toBe('settings.password.reset') - }) + // it('links the redirect button to /login', () => { + // expect(wrapper.find('a.btn').attributes('href')).toBe('/login') + // }) + // }) - it('links the redirect button to /forgot-password', () => { - expect(wrapper.find('a.btn').attributes('href')).toBe('/forgot-password') - }) - }) + // describe('coming from /register', () => { + // beforeEach(() => { + // wrapper = Wrapper(createMockObject('register')) + // }) + + // it('renders the thanks text', () => { + // expect(wrapper.find('p.h4').text()).toBe('site.thx.register') + // }) + // }) + + // describe('coming from /login', () => { + // beforeEach(() => { + // wrapper = Wrapper(createMockObject('login')) + // }) + + // it('renders the thanks text', () => { + // expect(wrapper.find('p.h4').text()).toBe('site.thx.activateEmail') + // }) + + // it('renders the thanks redirect button', () => { + // expect(wrapper.find('a.btn').text()).toBe('settings.password.reset') + // }) + + // it('links the redirect button to /forgot-password', () => { + // expect(wrapper.find('a.btn').attributes('href')).toBe('/forgot-password') + // }) + // }) }) diff --git a/frontend/src/components/Message/Message.vue b/frontend/src/components/Message/Message.vue index 2b2f7792b..06dce435b 100644 --- a/frontend/src/components/Message/Message.vue +++ b/frontend/src/components/Message/Message.vue @@ -10,17 +10,9 @@

{{ $t(displaySetup.subtitle) }}


- - {{ $t(displaySetup.button) }} - - {{ $t(displaySetup.button) }} @@ -56,7 +48,7 @@ const textFields = { headline: 'site.thx.title', subtitle: 'site.thx.register', button: 'site.login.signin', - // linkTo: '/login', + linkTo: '/login', }, 'check-email': { headline: 'site.thx.title', @@ -76,6 +68,7 @@ export default { name: 'Message', props: { kind: { type: String, required: true }, + code: { type: String, default: '' }, }, data() { return { diff --git a/frontend/src/pages/ForgotPassword.spec.js b/frontend/src/pages/ForgotPassword.spec.js index 6b4453f99..e97eb1018 100644 --- a/frontend/src/pages/ForgotPassword.spec.js +++ b/frontend/src/pages/ForgotPassword.spec.js @@ -2,8 +2,6 @@ import { mount, RouterLinkStub } from '@vue/test-utils' import flushPromises from 'flush-promises' import ForgotPassword from './ForgotPassword' -import { toastErrorSpy } from '@test/testSetup' - const mockAPIcall = jest.fn() const localVue = global.localVue @@ -118,25 +116,11 @@ describe('ForgotPassword', () => { await flushPromises() }) - // Wolle it('toasts a standard error message', () => { - // expect(toastErrorSpy).toBeCalledWith('error.email-already-sent') - // }) it('shows error message', () => { expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle') expect(wrapper.find('.test-message-subtitle').text()).toBe('error.email-already-sent') expect(wrapper.find('.test-message-button').text()).toBe('login') }) - - // Wolle it('pushes to "/thx/forgotPassword"', () => { - // expect(mockAPIcall).toBeCalledWith( - // expect.objectContaining({ - // variables: { - // email: 'user@example.org', - // }, - // }), - // ) - // expect(mockRouterPush).toHaveBeenCalledWith('/thx/forgotPassword') - // }) }) describe('success', () => { @@ -152,17 +136,7 @@ describe('ForgotPassword', () => { await flushPromises() }) - // it('pushes to "/thx/forgotPassword"', () => { - // expect(mockAPIcall).toBeCalledWith( - // expect.objectContaining({ - // variables: { - // email: 'user@example.org', - // }, - // }), - // ) - // expect(mockRouterPush).toHaveBeenCalledWith('/thx/forgotPassword') - // }) - it('shows thx', () => { + it('shows thx, email, send, login button', () => { expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.title') expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.email') expect(wrapper.find('.test-message-button').text()).toBe('login')