diff --git a/frontend/src/components/Message/Message.spec.js b/frontend/src/components/Message/Message.spec.js
index afbef53cd..db493b44a 100644
--- a/frontend/src/components/Message/Message.spec.js
+++ b/frontend/src/components/Message/Message.spec.js
@@ -27,7 +27,7 @@ describe('Message', () => {
})
it('renders the component', () => {
- expect(wrapper.find('div.header').exists()).toBeTruthy()
+ expect(wrapper.find('div.header').exists()).toBe(true)
})
it('renders title, subtitle, and button text', () => {
diff --git a/frontend/src/components/Message/Message.vue b/frontend/src/components/Message/Message.vue
index f5d93b4c3..a8a7c2800 100644
--- a/frontend/src/components/Message/Message.vue
+++ b/frontend/src/components/Message/Message.vue
@@ -7,9 +7,9 @@
{{ subtitle }}
{{ buttonText }}
@@ -37,6 +37,12 @@ export default {
this.callback()
}
},
+ showButton() {
+ return this.buttonText && (this.linkTo || this.callback)
+ },
+ buttonLinkTo() {
+ return this.linkTo ? this.linkTo + (this.code ? `/${this.code}` : '') : null
+ },
},
}
diff --git a/frontend/src/pages/ForgotPassword.spec.js b/frontend/src/pages/ForgotPassword.spec.js
index 9dc19495b..895e2cf47 100644
--- a/frontend/src/pages/ForgotPassword.spec.js
+++ b/frontend/src/pages/ForgotPassword.spec.js
@@ -47,7 +47,7 @@ describe('ForgotPassword', () => {
})
it('renders the component', () => {
- expect(wrapper.find('div.forgot-password').exists()).toBeTruthy()
+ expect(wrapper.find('div.forgot-password').exists()).toBe(true)
})
it('has a title', () => {
@@ -84,7 +84,7 @@ describe('ForgotPassword', () => {
})
it('has a submit button', () => {
- expect(form.find('button[type="submit"]').exists()).toBeTruthy()
+ expect(form.find('button[type="submit"]').exists()).toBe(true)
})
describe('invalid Email', () => {
@@ -118,7 +118,7 @@ describe('ForgotPassword', () => {
})
it('shows error title, subtitle, login button', () => {
- expect(wrapper.vm.showPageMessage).toBeTruthy()
+ expect(wrapper.vm.showPageMessage).toBe(true)
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')
@@ -154,7 +154,7 @@ describe('ForgotPassword', () => {
})
it('shows success title, subtitle, login button', () => {
- expect(wrapper.vm.showPageMessage).toBeTruthy()
+ expect(wrapper.vm.showPageMessage).toBe(true)
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')
diff --git a/frontend/src/pages/Login.spec.js b/frontend/src/pages/Login.spec.js
index 23ce6f065..80f507a1c 100644
--- a/frontend/src/pages/Login.spec.js
+++ b/frontend/src/pages/Login.spec.js
@@ -59,7 +59,7 @@ describe('Login', () => {
})
it('renders the Login form', () => {
- expect(wrapper.find('div.login-form').exists()).toBeTruthy()
+ expect(wrapper.find('div.login-form').exists()).toBe(true)
})
describe('Login header', () => {
@@ -102,19 +102,19 @@ describe('Login', () => {
describe('Login form', () => {
it('has a login form', () => {
- expect(wrapper.find('form').exists()).toBeTruthy()
+ expect(wrapper.find('form').exists()).toBe(true)
})
it('has an Email input field', () => {
- expect(wrapper.find('input[placeholder="Email"]').exists()).toBeTruthy()
+ expect(wrapper.find('input[placeholder="Email"]').exists()).toBe(true)
})
it('has an Password input field', () => {
- expect(wrapper.find('input[placeholder="form.password"]').exists()).toBeTruthy()
+ expect(wrapper.find('input[placeholder="form.password"]').exists()).toBe(true)
})
it('has a Submit button', () => {
- expect(wrapper.find('button[type="submit"]').exists()).toBeTruthy()
+ expect(wrapper.find('button[type="submit"]').exists()).toBe(true)
})
})
@@ -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', () => {
@@ -223,7 +227,7 @@ describe('Login', () => {
})
it('shows error title, subtitle, login button', () => {
- expect(wrapper.vm.showPageMessage).toBeTruthy()
+ expect(wrapper.vm.showPageMessage).toBe(true)
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.activateEmail')
expect(wrapper.find('.test-message-button').text()).toBe('settings.password.reset')
@@ -233,9 +237,11 @@ describe('Login', () => {
expect(wrapper.find('.test-message-button').attributes('href')).toBe('/forgot-password')
})
- // Wolle
- it.skip('click redirects to "/forgot-password"', () => {
- // expect(mockRouterPush).toBeCalledWith('/thx/login')
+ it.skip('click redirects to "/forgot-password"', async () => {
+ // wrapper.find('.test-message-button').trigger('click')
+ // await flushPromises()
+ // await wrapper.vm.$nextTick()
+ // expect(mockRouterPush).toBeCalledWith('/forgot-password')
})
it('toasts the error message', () => {
@@ -245,20 +251,11 @@ 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', () => {
- expect(wrapper.vm.showPageMessage).toBeTruthy()
+ expect(wrapper.vm.showPageMessage).toBe(true)
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.unsetPassword')
expect(wrapper.find('.test-message-button').text()).toBe('settings.password.reset')
@@ -279,6 +276,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).toBe(true)
+ 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')
+ })
+ })
})
})
})
diff --git a/frontend/src/pages/Register.spec.js b/frontend/src/pages/Register.spec.js
index 49984c008..e889f0ca7 100644
--- a/frontend/src/pages/Register.spec.js
+++ b/frontend/src/pages/Register.spec.js
@@ -50,7 +50,7 @@ describe('Register', () => {
})
it('renders the Register form', () => {
- expect(wrapper.find('div#registerform').exists()).toBeTruthy()
+ expect(wrapper.find('div#registerform').exists()).toBe(true)
})
describe('Register header', () => {
@@ -94,22 +94,22 @@ describe('Register', () => {
describe('Register form', () => {
it('has a register form', () => {
- expect(wrapper.find('form').exists()).toBeTruthy()
+ expect(wrapper.find('form').exists()).toBe(true)
})
it('has firstname input fields', () => {
- expect(wrapper.find('#registerFirstname').exists()).toBeTruthy()
+ expect(wrapper.find('#registerFirstname').exists()).toBe(true)
})
it('has lastname input fields', () => {
- expect(wrapper.find('#registerLastname').exists()).toBeTruthy()
+ expect(wrapper.find('#registerLastname').exists()).toBe(true)
})
it('has email input fields', () => {
- expect(wrapper.find('#Email-input-field').exists()).toBeTruthy()
+ expect(wrapper.find('#Email-input-field').exists()).toBe(true)
})
it('has Language selected field', () => {
- expect(wrapper.find('.selectedLanguage').exists()).toBeTruthy()
+ expect(wrapper.find('.selectedLanguage').exists()).toBe(true)
})
it('selects Language value en', async () => {
@@ -118,7 +118,7 @@ describe('Register', () => {
})
it('has 1 checkbox input fields', () => {
- expect(wrapper.find('#registerCheckbox').exists()).toBeTruthy()
+ expect(wrapper.find('#registerCheckbox').exists()).toBe(true)
})
it('has PublisherId input fields', () => {
@@ -221,31 +221,64 @@ describe('Register', () => {
})
describe('server sends back error', () => {
- beforeEach(async () => {
+ const createError = async (errorMessage) => {
registerUserMutationMock.mockRejectedValue({
- message: 'GraphQL error: User already exists.',
+ message: errorMessage,
})
await wrapper.find('form').trigger('submit')
await flushPromises()
+ }
+
+ describe('server sends back error "User already exists."', () => {
+ beforeEach(async () => {
+ await createError('GraphQL error: User already exists.')
+ })
+
+ it('shows success title, subtitle, login button', () => {
+ expect(wrapper.vm.showPageMessage).toBe(true)
+ expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
+ expect(wrapper.find('.test-message-subtitle').text()).toBe('error.user-already-exists')
+ expect(wrapper.find('.test-message-button').text()).toBe(
+ 'site.register.message-button-text',
+ )
+ })
+
+ it('toasts the error message', () => {
+ expect(toastErrorSpy).toBeCalledWith('error.user-already-exists')
+ })
+
+ it('click calls "solveError"', async () => {
+ wrapper.find('.test-message-button').trigger('click')
+ await wrapper.vm.$nextTick()
+ expect(wrapper.vm.showPageMessage).toBe(false)
+ })
})
- it('shows success 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.user-already-exists')
- expect(wrapper.find('.test-message-button').text()).toBe(
- 'site.register.message-button-text',
- )
- })
+ describe('server sends back error "Unknown error"', () => {
+ beforeEach(async () => {
+ await createError(' – Unknown error.')
+ })
- it('toasts the error message', () => {
- expect(toastErrorSpy).toBeCalledWith('error.user-already-exists')
- })
+ it('shows success title, subtitle, login button', () => {
+ expect(wrapper.vm.showPageMessage).toBe(true)
+ expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
+ expect(wrapper.find('.test-message-subtitle').text()).toBe(
+ 'error.unknown-error – Unknown error.',
+ )
+ expect(wrapper.find('.test-message-button').text()).toBe(
+ 'site.register.message-button-text',
+ )
+ })
- it('click calls "solveError"', async () => {
- wrapper.find('.test-message-button').trigger('click')
- await wrapper.vm.$nextTick()
- expect(wrapper.vm.showPageMessage).not.toBeTruthy()
+ it('toasts the error message', () => {
+ expect(toastErrorSpy).toBeCalledWith('error.unknown-error – Unknown error.')
+ })
+
+ it('click calls "solveError"', async () => {
+ wrapper.find('.test-message-button').trigger('click')
+ await wrapper.vm.$nextTick()
+ expect(wrapper.vm.showPageMessage).toBe(false)
+ })
})
})
@@ -275,13 +308,13 @@ describe('Register', () => {
})
it('shows success title, subtitle', () => {
- expect(wrapper.vm.showPageMessage).toBeTruthy()
+ expect(wrapper.vm.showPageMessage).toBe(true)
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.title')
expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.register')
})
it('button is not present', () => {
- expect(wrapper.find('.test-message-button')).toBeTruthy()
+ expect(wrapper.find('.test-message-button').exists()).toBe(false)
})
})
})