Merge pull request #2994 from gradido/preserve-email-on-login

feat(frontend): preserve email after login
This commit is contained in:
Moriz Wahl 2023-05-19 17:09:19 +02:00 committed by GitHub
commit a77a3e89bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 6 deletions

View File

@ -29,10 +29,7 @@
</div>
<div>
<div data-test="navbar-item-username">{{ username.username }}</div>
<div data-test="navbar-item-email">
{{ $store.state.email }}
</div>
<div data-test="navbar-item-email">{{ $store.state.email }}</div>
</div>
</div>
</router-link>

View File

@ -146,6 +146,10 @@ describe('Login', () => {
expect(mockStoreDispach).toBeCalledWith('login', 'token')
})
it('commits email to store', () => {
expect(mockStoreCommit).toBeCalledWith('email', 'user@example.org')
})
it('hides the spinner', () => {
expect(spinnerHideMock).toBeCalled()
})

View File

@ -100,6 +100,7 @@ export default {
data: { login },
} = result
this.$store.dispatch('login', login)
this.$store.commit('email', this.form.email)
await loader.hide()
if (this.$route.params.code) {
this.$router.push(`/redeem/${this.$route.params.code}`)

View File

@ -53,6 +53,9 @@ export const mutations = {
hideAmountGDT: (state, hideAmountGDT) => {
state.hideAmountGDT = !!hideAmountGDT
},
email: (state, email) => {
state.email = email || ''
},
}
export const actions = {
@ -81,6 +84,7 @@ export const actions = {
commit('isAdmin', false)
commit('hideAmountGDD', false)
commit('hideAmountGDT', true)
commit('email', '')
localStorage.clear()
},
}
@ -109,6 +113,7 @@ try {
publisherId: null,
hideAmountGDD: null,
hideAmountGDT: null,
email: '',
},
getters: {},
// Syncronous mutation of the state

View File

@ -33,6 +33,7 @@ const {
hasElopage,
hideAmountGDD,
hideAmountGDT,
email,
} = mutations
const { login, logout } = actions
@ -166,6 +167,14 @@ describe('Vuex store', () => {
expect(state.hideAmountGDT).toEqual(true)
})
})
describe('email', () => {
it('sets the state of email', () => {
const state = { email: '' }
email(state, 'peter@luatig.de')
expect(state.email).toEqual('peter@luatig.de')
})
})
})
describe('actions', () => {
@ -253,9 +262,9 @@ describe('Vuex store', () => {
const commit = jest.fn()
const state = {}
it('calls eleven commits', () => {
it('calls twelve commits', () => {
logout({ commit, state })
expect(commit).toHaveBeenCalledTimes(11)
expect(commit).toHaveBeenCalledTimes(12)
})
it('commits token', () => {
@ -312,6 +321,12 @@ describe('Vuex store', () => {
logout({ commit, state })
expect(commit).toHaveBeenNthCalledWith(11, 'hideAmountGDT', true)
})
it('commits email', () => {
logout({ commit, state })
expect(commit).toHaveBeenNthCalledWith(12, 'email', '')
})
// how to get this working?
it.skip('calls localStorage.clear()', () => {
const clearStorageMock = jest.fn()