mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch '1697-refactor-thx-page-#1' of github.com:gradido/gradido into 1697-refactor-thx-page-#2
# Conflicts: # frontend/src/components/Message/Message.vue # frontend/src/pages/Login.spec.js
This commit is contained in:
commit
a6ec784596
@ -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', () => {
|
||||
|
||||
@ -7,9 +7,9 @@
|
||||
<p class="h4 test-message-subtitle">{{ subtitle }}</p>
|
||||
<hr />
|
||||
<b-button
|
||||
v-if="buttonText && (linkTo || callback)"
|
||||
v-if="showButton()"
|
||||
class="test-message-button"
|
||||
:to="linkTo ? linkTo + (code ? `/${code}` : '') : null"
|
||||
:to="buttonLinkTo()"
|
||||
@click="optionalCallback()"
|
||||
>
|
||||
{{ 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
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@ -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)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user