From 03ae59627d46c77fc2430368b844e82a946d9883 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 24 Jul 2023 10:00:15 +0200 Subject: [PATCH] Fix emit and role as uppercase --- .../components/ChangeUserRoleFormular.spec.js | 30 ++++++++----------- .../src/components/ChangeUserRoleFormular.vue | 25 +++++++--------- .../components/Tables/SearchUserTable.spec.js | 5 ++-- .../src/components/Tables/SearchUserTable.vue | 4 +-- admin/src/pages/UserSearch.spec.js | 18 +++++++---- admin/src/pages/UserSearch.vue | 4 +-- 6 files changed, 42 insertions(+), 44 deletions(-) diff --git a/admin/src/components/ChangeUserRoleFormular.spec.js b/admin/src/components/ChangeUserRoleFormular.spec.js index 21df772e3..51a558d60 100644 --- a/admin/src/components/ChangeUserRoleFormular.spec.js +++ b/admin/src/components/ChangeUserRoleFormular.spec.js @@ -182,8 +182,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - // isAdmin: true, - role: 'moderator', + role: 'MODERATOR', }, }), ) @@ -195,8 +194,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - // isAdmin: true, - role: 'moderator', + role: 'MODERATOR', }, ]), ]), @@ -255,8 +253,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - // isAdmin: true, - role: 'admin', + role: 'ADMIN', }, }), ) @@ -268,8 +265,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - // isAdmin: true, - role: 'admin', + role: 'ADMIN', }, ]), ]), @@ -308,7 +304,6 @@ describe('ChangeUserRoleFormular', () => { propsData = { item: { userId: 1, - // isAdmin: new Date(), roles: ['MODERATOR'], }, } @@ -365,7 +360,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - role: 'user', + role: 'USER', }, }), ) @@ -377,7 +372,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - role: 'user', + role: 'USER', }, ]), ]), @@ -436,7 +431,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - role: 'admin', + role: 'ADMIN', }, }), ) @@ -448,7 +443,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - role: 'admin', + role: 'ADMIN', }, ]), ]), @@ -487,7 +482,6 @@ describe('ChangeUserRoleFormular', () => { propsData = { item: { userId: 1, - // isAdmin: new Date(), roles: ['ADMIN'], }, } @@ -544,7 +538,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - role: 'user', + role: 'USER', }, }), ) @@ -556,7 +550,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - role: 'user', + role: 'USER', }, ]), ]), @@ -615,7 +609,7 @@ describe('ChangeUserRoleFormular', () => { mutation: setUserRole, variables: { userId: 1, - role: 'moderator', + role: 'MODERATOR', }, }), ) @@ -627,7 +621,7 @@ describe('ChangeUserRoleFormular', () => { expect.arrayContaining([ { userId: 1, - role: 'moderator', + role: 'MODERATOR', }, ]), ]), diff --git a/admin/src/components/ChangeUserRoleFormular.vue b/admin/src/components/ChangeUserRoleFormular.vue index 06cb9d946..840410931 100644 --- a/admin/src/components/ChangeUserRoleFormular.vue +++ b/admin/src/components/ChangeUserRoleFormular.vue @@ -64,8 +64,10 @@ export default { this.$t('overlay.changeUserRole.question', { username: `${this.item.firstName} ${this.item.lastName}`, newRole: - this.roleSelected === 'admin' + this.roleSelected === rolesValues.admin ? this.$t('userRole.selectRoles.admin') + : this.roleSelected === rolesValues.moderator + ? this.$t('userRole.selectRoles.moderator') : this.$t('userRole.selectRoles.user'), }), { @@ -87,32 +89,27 @@ export default { }) }, setUserRole(newRole, oldRole) { - let role - switch (newRole) { - case rolesValues.admin: - case rolesValues.moderator: - case rolesValues.user: - role = newRole - break - default: - role = 'USER' - } + const role = this.roles.find((role) => { + return role.value === newRole + }) + const roleText = role.text + const roleValue = role.value.toUpperCase() this.$apollo .mutate({ mutation: setUserRole, variables: { userId: this.item.userId, - role, + role: role.value.toUpperCase(), }, }) .then((result) => { this.$emit('updateIsAdmin', { userId: this.item.userId, - role, + role: roleValue, }) this.toastSuccess( this.$t('userRole.successfullyChangedTo', { - role: role.text, + role: roleText, }), ) }) diff --git a/admin/src/components/Tables/SearchUserTable.spec.js b/admin/src/components/Tables/SearchUserTable.spec.js index d38520327..a8037422f 100644 --- a/admin/src/components/Tables/SearchUserTable.spec.js +++ b/admin/src/components/Tables/SearchUserTable.spec.js @@ -102,12 +102,13 @@ describe('SearchUserTable', () => { beforeEach(async () => { await wrapper.find('div.change-user-role-formular').vm.$emit('updateIsAdmin', { userId: 1, - isAdmin: new Date(), + // isAdmin: new Date(), + role: 'ADMIN', }) }) it('emits updateIsAdmin', () => { - expect(wrapper.emitted('updateIsAdmin')).toEqual([[1, expect.any(Date)]]) + expect(wrapper.emitted('updateIsAdmin')).toEqual([[1, 'ADMIN']]) }) }) diff --git a/admin/src/components/Tables/SearchUserTable.vue b/admin/src/components/Tables/SearchUserTable.vue index 25d807c83..32f917e0e 100644 --- a/admin/src/components/Tables/SearchUserTable.vue +++ b/admin/src/components/Tables/SearchUserTable.vue @@ -127,8 +127,8 @@ export default { updateUserData(rowItem, newCreation) { rowItem.creation = newCreation }, - updateIsAdmin({ userId, isAdmin }) { - this.$emit('updateIsAdmin', userId, isAdmin) + updateIsAdmin({ userId, role }) { + this.$emit('updateIsAdmin', userId, role) }, updateDeletedAt({ userId, deletedAt }) { this.$emit('updateDeletedAt', userId, deletedAt) diff --git a/admin/src/pages/UserSearch.spec.js b/admin/src/pages/UserSearch.spec.js index 7979ed6d0..a35486720 100644 --- a/admin/src/pages/UserSearch.spec.js +++ b/admin/src/pages/UserSearch.spec.js @@ -16,6 +16,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({ email: 'new@user.ch', creation: [1000, 1000, 1000], emailChecked: false, + roles: [], deletedAt: null, }, { @@ -24,6 +25,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({ lastName: 'Lustig', email: 'peter@lustig.de', creation: [0, 0, 0], + roles: ['ADMIN'], emailChecked: true, deletedAt: null, }, @@ -33,6 +35,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({ lastName: 'Blümchen', email: 'benjamin@bluemchen.de', creation: [1000, 1000, 1000], + roles: ['USER'], emailChecked: true, deletedAt: new Date(), }, @@ -42,6 +45,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({ lastName: 'Bloxberg', email: 'bibi@bloxberg.de', creation: [200, 400, 600], + roles: ['USER'], emailChecked: true, deletedAt: null, }, @@ -212,10 +216,10 @@ describe('UserSearch', () => { it('updates user role to admin', async () => { await wrapper .findComponent({ name: 'SearchUserTable' }) - .vm.$emit('updateIsAdmin', userId, new Date()) - expect(wrapper.vm.searchResult.find((obj) => obj.userId === userId).isAdmin).toEqual( - expect.any(Date), - ) + .vm.$emit('updateIsAdmin', userId, 'ADMIN') + expect(wrapper.vm.searchResult.find((obj) => obj.userId === userId).roles).toEqual([ + 'ADMIN', + ]) }) }) @@ -223,8 +227,10 @@ describe('UserSearch', () => { it('updates user role to usual user', async () => { await wrapper .findComponent({ name: 'SearchUserTable' }) - .vm.$emit('updateIsAdmin', userId, null) - expect(wrapper.vm.searchResult.find((obj) => obj.userId === userId).isAdmin).toEqual(null) + .vm.$emit('updateIsAdmin', userId, 'USER') + expect(wrapper.vm.searchResult.find((obj) => obj.userId === userId).roles).toEqual([ + 'USER', + ]) }) }) }) diff --git a/admin/src/pages/UserSearch.vue b/admin/src/pages/UserSearch.vue index 95b9a6833..4f6c74720 100644 --- a/admin/src/pages/UserSearch.vue +++ b/admin/src/pages/UserSearch.vue @@ -101,8 +101,8 @@ export default { this.toastError(error.message) }) }, - updateIsAdmin(userId, isAdmin) { - this.searchResult.find((obj) => obj.userId === userId).isAdmin = isAdmin + updateIsAdmin(userId, role) { + this.searchResult.find((obj) => obj.userId === userId).roles = [role] }, updateDeletedAt(userId, deletedAt) { this.searchResult.find((obj) => obj.userId === userId).deletedAt = deletedAt