From 1a42aa17e4827da7fcbd7f7efe051d39fc8bc20d Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 28 Sep 2021 12:29:45 +0200 Subject: [PATCH 1/4] register process simplified, reset function removed, submit button replaced with disable function --- frontend/src/views/Pages/Register.spec.js | 62 ++--------------------- frontend/src/views/Pages/Register.vue | 37 +++++--------- 2 files changed, 16 insertions(+), 83 deletions(-) diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 8c00d5bd6..233897243 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -55,11 +55,11 @@ describe('Register', () => { describe('links', () => { it('has a link "Back"', () => { - expect(wrapper.findAllComponents(RouterLinkStub).at(0).text()).toEqual('back') + expect(wrapper.find('.test-button-back').text()).toEqual('back') }) it('links to /login when clicking "Back"', () => { - expect(wrapper.findAllComponents(RouterLinkStub).at(0).props().to).toBe('/login') + expect(wrapper.find('.test-button-back').props().to).toBe('/login') }) }) @@ -98,8 +98,8 @@ describe('Register', () => { expect(wrapper.find('#registerCheckbox').exists()).toBeTruthy() }) - it('has no submit button when not completely filled', () => { - expect(wrapper.find('button[type="submit"]').exists()).toBe(false) + it('has disabled submit button when not completely filled', () => { + expect(wrapper.find('button[type="submit"]').is('[disabled]')).toBe(true) }) it('displays a message that Email is required', async () => { @@ -127,60 +127,6 @@ describe('Register', () => { }) }) - describe('resetForm', () => { - beforeEach(() => { - wrapper.find('#registerFirstname').setValue('Max') - wrapper.find('#registerLastname').setValue('Mustermann') - wrapper.find('#Email-input-field').setValue('max.mustermann@gradido.net') - wrapper.find('input[name="form.password"]').setValue('Aa123456_') - wrapper.find('input[name="form.passwordRepeat"]').setValue('Aa123456_') - wrapper.find('.language-switch-select').findAll('option').at(1).setSelected() - wrapper.find('input[name="site.signup.agree"]').setChecked(true) - }) - - it('reset selected value language', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('.language-switch-select').element.value).toBe(undefined) - }) - - it('resets the firstName field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('#registerFirstname').element.value).toBe('') - }) - - it('resets the lastName field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('#registerLastname').element.value).toBe('') - }) - - it('resets the email field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('#Email-input-field').element.value).toBe('') - }) - - it.skip('resets the password field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('input[name="form.password"]').element.value).toBe('') - }) - - it.skip('resets the passwordRepeat field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('input[name="form.passwordRepeat"]').element.value).toBe('') - }) - - it('resets the firstName field after clicking the reset button', async () => { - await wrapper.find('button.ml-2').trigger('click') - await flushPromises() - expect(wrapper.find('input[name="site.signup.agree"]').props.checked).not.toBeTruthy() - }) - }) - describe('API calls', () => { beforeEach(() => { wrapper.find('#registerFirstname').setValue('Max') diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 1a1b91bbe..89b539922 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -116,13 +116,19 @@ -
+
- {{ $t('form.reset') }} - {{ $t('signup') }} + + {{ $t('back') }} + + + + {{ $t('signup') }} +
@@ -131,9 +137,6 @@ -
- {{ $t('back') }} -
@@ -172,22 +175,6 @@ export default { getValidationState({ dirty, validated, valid = null }) { return dirty || validated ? valid : null }, - resetForm() { - this.form = { - firstname: '', - lastname: '', - email: '', - password: { - password: '', - passwordRepeat: '', - }, - agree: false, - } - this.language = '' - this.$nextTick(() => { - this.$refs.observer.reset() - }) - }, async onSubmit() { this.$apollo .mutate({ From a8faa7b51b7bbf56024d07924a79e4c333cb6f12 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 28 Sep 2021 13:47:22 +0200 Subject: [PATCH 2/4] add test - enable disable button on submit register --- frontend/src/views/Pages/Register.spec.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 233897243..04e59cde6 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -99,7 +99,7 @@ describe('Register', () => { }) it('has disabled submit button when not completely filled', () => { - expect(wrapper.find('button[type="submit"]').is('[disabled]')).toBe(true) + expect(wrapper.find('button[type="submit"]').attributes('disabled')).toBe('disabled') }) it('displays a message that Email is required', async () => { @@ -137,6 +137,10 @@ describe('Register', () => { wrapper.find('.language-switch-select').findAll('option').at(1).setSelected() }) + it('has enabled submit button when completely filled', () => { + expect(wrapper.find('button[type="submit"]').attributes('disabled')).toBe('disabled') + }) + describe('server sends back error', () => { beforeEach(async () => { registerUserMutationMock.mockRejectedValue({ message: 'Ouch!' }) From fd2ae0f2429a1cf12435a05412b76d5dca5f90e1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 28 Sep 2021 14:55:14 +0200 Subject: [PATCH 3/4] remove select 'null' in LanguageSwitchSelect.vue --- frontend/src/components/LanguageSwitchSelect.vue | 1 - frontend/src/locales/de.json | 1 - frontend/src/locales/en.json | 1 - frontend/src/views/Pages/Register.spec.js | 4 ++-- frontend/src/views/Pages/Register.vue | 2 +- 5 files changed, 3 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/LanguageSwitchSelect.vue b/frontend/src/components/LanguageSwitchSelect.vue index 518bcf6cf..3467bdafd 100644 --- a/frontend/src/components/LanguageSwitchSelect.vue +++ b/frontend/src/components/LanguageSwitchSelect.vue @@ -14,7 +14,6 @@ export default { return { selected: null, options: [ - { value: null, text: this.$t('select_language') }, { value: 'de', text: this.$t('languages.de') }, { value: 'en', text: this.$t('languages.en') }, ], diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 468c88f85..6dbd06fbd 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -122,7 +122,6 @@ "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst.", "title": "Passwort zurücksetzen" }, - "select_language": "Bitte wähle eine Sprache für die App und Newsletter", "send": "Senden", "setting": { "changeNewsletter": "Newsletter Status ändern", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 05ce82b7b..39578936d 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -122,7 +122,6 @@ "text": "Now you can save a new password to login to the Gradido-App in the future.", "title": "Reset Password" }, - "select_language": "Please choose a language for the app and newsletter", "send": "Send", "setting": { "changeNewsletter": "Newsletter status change", diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 04e59cde6..37ee22f78 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -91,7 +91,7 @@ describe('Register', () => { }) it('selected Language value de', async () => { wrapper.find('.selectedLanguage').findAll('option').at(1).setSelected() - expect(wrapper.find('.selectedLanguage').element.value).toBe('de') + expect(wrapper.find('.selectedLanguage').element.value).toBe('en') }) it('has 1 checkbox input fields', () => { @@ -185,7 +185,7 @@ describe('Register', () => { firstName: 'Max', lastName: 'Mustermann', password: 'Aa123456_', - language: 'de', + language: 'en', }, }), ) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 89b539922..f08ea286e 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -225,7 +225,7 @@ export default { return this.form.email !== '' }, languageFilled() { - return this.language !== null && this.language !== '' + return !!this.language }, }, } From 6883fc37785e994683b756f3011438694d96b988 Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Tue, 28 Sep 2021 16:40:47 +0200 Subject: [PATCH 4/4] Update Register.spec.js --- frontend/src/views/Pages/Register.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 37ee22f78..f3f66fca9 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -25,7 +25,7 @@ describe('Register', () => { $store: { state: { email: 'peter@lustig.de', - language: null, + language: 'en', }, }, } @@ -89,7 +89,7 @@ describe('Register', () => { it('has Language selected field', () => { expect(wrapper.find('.selectedLanguage').exists()).toBeTruthy() }) - it('selected Language value de', async () => { + it('selects Language value en', async () => { wrapper.find('.selectedLanguage').findAll('option').at(1).setSelected() expect(wrapper.find('.selectedLanguage').element.value).toBe('en') })