diff --git a/admin/src/locales/de.json b/admin/src/locales/de.json
index 111d6823f..b1a008eaf 100644
--- a/admin/src/locales/de.json
+++ b/admin/src/locales/de.json
@@ -12,6 +12,9 @@
"select_value": "Betrag auswählen",
"submit_creation": "Schöpfung einreichen",
"toasted": "Offene Schöpfung ({value} GDD) für {email} wurde gespeichert und liegt zur Bestätigung bereit",
+ "toasted_created": "Schöpfung wurde erfolgreich gespeichert",
+ "toasted_default": "`Fall {event} wird nicht unterstützt`",
+ "toasted_delete": "Offene Schöpfung wurde gelöscht",
"toasted_update": "`Offene Schöpfung {value} GDD) für {email} wurde geändert und liegt zur Bestätigung bereit",
"update_creation": "Schöpfung aktualisieren"
},
diff --git a/admin/src/locales/en.json b/admin/src/locales/en.json
index d412ecfcb..2d2df4461 100644
--- a/admin/src/locales/en.json
+++ b/admin/src/locales/en.json
@@ -12,6 +12,9 @@
"select_value": "Select amount",
"submit_creation": "Submit creation",
"toasted": "Open creation ({value} GDD) for {email} has been saved and is ready for confirmation.",
+ "toasted_created": "Creation has been successfully saved",
+ "toasted_default": "`Case {event} is not supported`",
+ "toasted_delete": "Open creation has been deleted",
"toasted_update": "Open creation {value} GDD) for {email} has been changed and is ready for confirmation.",
"update_creation": "Creation update"
},
diff --git a/admin/src/pages/CreationConfirm.spec.js b/admin/src/pages/CreationConfirm.spec.js
index 14a71bb78..cc0a096da 100644
--- a/admin/src/pages/CreationConfirm.spec.js
+++ b/admin/src/pages/CreationConfirm.spec.js
@@ -127,7 +127,7 @@ describe('CreationConfirm', () => {
})
it('toasts a success message', () => {
- expect(toastedSuccessMock).toBeCalledWith('Pending Creation has been deleted')
+ expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_delete')
})
})
@@ -189,7 +189,7 @@ describe('CreationConfirm', () => {
})
it('toasts a success message', () => {
- expect(toastedSuccessMock).toBeCalledWith('Pending Creation has been deleted')
+ expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_created')
})
})
@@ -201,7 +201,7 @@ describe('CreationConfirm', () => {
})
it('toasts an error message', () => {
- expect(toastedErrorMock).toBeCalledWith('Case confirm is not supported')
+ expect(toastedErrorMock).toBeCalledWith('creation_form.toasted_default')
})
})
diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue
index 578c9b23f..bfb3100aa 100644
--- a/admin/src/pages/CreationConfirm.vue
+++ b/admin/src/pages/CreationConfirm.vue
@@ -66,7 +66,7 @@ export default {
index = this.confirmResult.indexOf(findArr)
this.confirmResult.splice(index, 1)
this.$store.commit('openCreationsMinus', 1)
- this.$toasted.success('Pending Creation has been deleted')
+ this.$toasted.success(this.$t('creation_form.toasted_delete'))
})
.catch((error) => {
this.$toasted.error(error.message)
@@ -75,10 +75,10 @@ export default {
case 'confirmed':
this.confirmResult.splice(index, 1)
this.$store.commit('openCreationsMinus', 1)
- this.$toasted.success('Pending Creation has been deleted')
+ this.$toasted.success(this.$t('creation_form.toasted_created'))
break
default:
- this.$toasted.error('Case ' + event + ' is not supported')
+ this.$toasted.error(this.$t('creation_form.toasted_default', { event }))
}
},
getPendingCreations() {
diff --git a/frontend/src/components/Inputs/InputPasswordConfirmation.vue b/frontend/src/components/Inputs/InputPasswordConfirmation.vue
index ecb3aa55a..8154984ef 100644
--- a/frontend/src/components/Inputs/InputPasswordConfirmation.vue
+++ b/frontend/src/components/Inputs/InputPasswordConfirmation.vue
@@ -24,8 +24,12 @@
-
+
{{ $t('overview') }}
@@ -52,3 +52,9 @@ export default {
},
}
+
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index 651944547..d92f42f5d 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -198,7 +198,7 @@
},
"thx": {
"activateEmail": "Dein Konto wurde noch nicht aktiviert. Bitte überprüfe deine E-Mail und klicke den Aktivierungslink!",
- "checkEmail": "Deine E-Mail wurde erfolgreich verifiziert.",
+ "checkEmail": "Deine E-Mail wurde erfolgreich verifiziert. Du kannst dich jetzt anmelden.",
"email": "Wir haben dir eine E-Mail gesendet.",
"emailActivated": "Danke dass Du deine E-Mail bestätigt hast.",
"errorTitle": "Achtung!",
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index c6cbeed69..014d449a0 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -198,7 +198,7 @@
},
"thx": {
"activateEmail": "Your account has not been activated yet, please check your emails and click the activation link!",
- "checkEmail": "Your email has been successfully verified.",
+ "checkEmail": "Your email has been successfully verified. You can sign in now.",
"email": "We have sent you an email.",
"emailActivated": "Thank you your email has been activated.",
"errorTitle": "Attention!",
diff --git a/frontend/src/views/Pages/ResetPassword.spec.js b/frontend/src/views/Pages/ResetPassword.spec.js
index e28d16c3e..da8b4bc4f 100644
--- a/frontend/src/views/Pages/ResetPassword.spec.js
+++ b/frontend/src/views/Pages/ResetPassword.spec.js
@@ -15,54 +15,48 @@ const stubs = {
RouterLink: RouterLinkStub,
}
-const createMockObject = (comingFrom) => {
- return {
- localVue,
- mocks: {
- $i18n: {
- locale: 'en',
- },
- $t: jest.fn((t) => t),
- $route: {
- params: {
- optin: '123',
- comingFrom,
- },
- path: {
- includes: (t) => t,
- },
- },
- $toasted: {
- global: {
- error: toasterMock,
- },
- },
- $router: {
- push: routerPushMock,
- },
- $loading: {
- show: jest.fn(() => {
- return { hide: jest.fn() }
- }),
- },
- $apollo: {
- mutate: apolloMutationMock,
- },
+const mocks = {
+ $i18n: {
+ locale: 'en',
+ },
+ $t: jest.fn((t) => t),
+ $route: {
+ params: {
+ optin: '123',
},
- stubs,
- }
+ path: {
+ mock: 'checkEmail',
+ includes: jest.fn((t) => t === mocks.$route.path.mock),
+ },
+ },
+ $toasted: {
+ global: {
+ error: toasterMock,
+ },
+ },
+ $router: {
+ push: routerPushMock,
+ },
+ $loading: {
+ show: jest.fn(() => {
+ return { hide: jest.fn() }
+ }),
+ },
+ $apollo: {
+ mutate: apolloMutationMock,
+ },
}
describe('ResetPassword', () => {
let wrapper
- const Wrapper = (functionName) => {
- return mount(ResetPassword, functionName)
+ const Wrapper = () => {
+ return mount(ResetPassword, { localVue, mocks, stubs })
}
describe('mount', () => {
beforeEach(() => {
- wrapper = Wrapper(createMockObject())
+ wrapper = Wrapper()
})
describe('No valid optin', () => {
@@ -86,11 +80,32 @@ describe('ResetPassword', () => {
})
describe('Register header', () => {
- it('has a welcome message', async () => {
- expect(wrapper.find('div.header').text()).toContain('settings.password.reset')
- expect(wrapper.find('div.header').text()).toContain(
- 'settings.password.reset-password.text',
- )
+ describe('from reset', () => {
+ beforeEach(() => {
+ mocks.$route.path.mock = 'reset'
+ wrapper = Wrapper()
+ })
+
+ it('has a welcome message', async () => {
+ expect(wrapper.find('div.header').text()).toContain('settings.password.reset')
+ expect(wrapper.find('div.header').text()).toContain(
+ 'settings.password.reset-password.text',
+ )
+ })
+ })
+
+ describe('from checkEmail', () => {
+ beforeEach(() => {
+ mocks.$route.path.mock = 'checkEmail'
+ wrapper = Wrapper()
+ })
+
+ it('has a welcome message', async () => {
+ expect(wrapper.find('div.header').text()).toContain('settings.password.set')
+ expect(wrapper.find('div.header').text()).toContain(
+ 'settings.password.set-password.text',
+ )
+ })
})
})
@@ -128,7 +143,6 @@ describe('ResetPassword', () => {
describe('submit form', () => {
beforeEach(async () => {
- // wrapper = Wrapper(createMockObject())
await wrapper.findAll('input').at(0).setValue('Aa123456_')
await wrapper.findAll('input').at(1).setValue('Aa123456_')
await flushPromises()
@@ -164,14 +178,14 @@ describe('ResetPassword', () => {
})
})
- describe('server response with success', () => {
+ describe('server response with success on /checkEmail', () => {
beforeEach(async () => {
+ mocks.$route.path.mock = 'checkEmail'
apolloMutationMock.mockResolvedValue({
data: {
resetPassword: 'success',
},
})
- wrapper = Wrapper(createMockObject('checkEmail'))
await wrapper.findAll('input').at(0).setValue('Aa123456_')
await wrapper.findAll('input').at(1).setValue('Aa123456_')
await wrapper.find('form').trigger('submit')
@@ -189,6 +203,26 @@ describe('ResetPassword', () => {
)
})
+ it('redirects to "/thx/checkEmail"', () => {
+ expect(routerPushMock).toHaveBeenCalledWith('/thx/checkEmail')
+ })
+ })
+
+ describe('server response with success on /reset', () => {
+ beforeEach(async () => {
+ mocks.$route.path.mock = 'reset'
+ wrapper = Wrapper()
+ apolloMutationMock.mockResolvedValue({
+ data: {
+ resetPassword: 'success',
+ },
+ })
+ await wrapper.findAll('input').at(0).setValue('Aa123456_')
+ await wrapper.findAll('input').at(1).setValue('Aa123456_')
+ await wrapper.find('form').trigger('submit')
+ await flushPromises()
+ })
+
it('redirects to "/thx/reset"', () => {
expect(routerPushMock).toHaveBeenCalledWith('/thx/reset')
})
diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue
index 05d8a0f6e..0023c3838 100644
--- a/frontend/src/views/Pages/ResetPassword.vue
+++ b/frontend/src/views/Pages/ResetPassword.vue
@@ -92,7 +92,11 @@ export default {
})
.then(() => {
this.form.password = ''
- this.$router.push('/thx/reset')
+ if (this.$route.path.includes('checkEmail')) {
+ this.$router.push('/thx/checkEmail')
+ } else {
+ this.$router.push('/thx/reset')
+ }
})
.catch((error) => {
this.$toasted.global.error(error.message)