From dda9cba7869da1c052d259f5f9f7bd01b9715116 Mon Sep 17 00:00:00 2001 From: Fredrik Oseberg Date: Wed, 5 Jan 2022 10:31:45 +0100 Subject: [PATCH] fix: add test for changing user role --- src/lib/services/access-service.ts | 2 - .../e2e/services/project-service.e2e.test.ts | 57 +++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/src/lib/services/access-service.ts b/src/lib/services/access-service.ts index 309de50be9..f7dad3bc0e 100644 --- a/src/lib/services/access-service.ts +++ b/src/lib/services/access-service.ts @@ -106,8 +106,6 @@ export class AccessService { try { const userP = await this.getPermissionsForUser(user); - console.log('checking against', permission, projectId, environment); - console.log('Got the following perms back', userP); return userP .filter( diff --git a/src/test/e2e/services/project-service.e2e.test.ts b/src/test/e2e/services/project-service.e2e.test.ts index 2fcc6cb291..a656131f78 100644 --- a/src/test/e2e/services/project-service.e2e.test.ts +++ b/src/test/e2e/services/project-service.e2e.test.ts @@ -595,3 +595,60 @@ test('should delete role entries when deleting project', async () => { usersForRole = await accessService.getUsersForRole(customRole.id); expect(usersForRole.length).toBe(0); }); + +test('should change a users role in the project', async () => { + const project = { + id: 'test-change-user-role', + name: 'New project', + description: 'Blah', + }; + + await projectService.createProject(project, user); + + const projectUser = await stores.userStore.insert({ + name: 'Projectuser3', + email: 'project3@getunleash.io', + }); + + const customRole = await accessService.createRole({ + name: 'Service Engineer3', + description: '', + permissions: [ + { + id: 2, + name: 'CREATE_FEATURE', + environment: null, + displayName: 'Create Feature Toggles', + type: 'project', + }, + { + id: 8, + name: 'DELETE_FEATURE', + environment: null, + displayName: 'Delete Feature Toggles', + type: 'project', + }, + ], + }); + const member = await stores.roleStore.getRoleByName(RoleName.MEMBER); + + await projectService.addUser(project.id, member.id, projectUser.id); + const { users } = await projectService.getUsersWithAccess(project.id, user); + let memberUser = users.filter((u) => u.roleId === member.id); + + expect(memberUser).toHaveLength(1); + expect(memberUser[0].id).toBe(projectUser.id); + expect(memberUser[0].name).toBe(projectUser.name); + await projectService.removeUser(project.id, member.id, projectUser.id); + await projectService.addUser(project.id, customRole.id, projectUser.id); + + let { users: updatedUsers } = await projectService.getUsersWithAccess( + project.id, + user, + ); + const customUser = updatedUsers.filter((u) => u.roleId === customRole.id); + + expect(customUser).toHaveLength(1); + expect(customUser[0].id).toBe(projectUser.id); + expect(customUser[0].name).toBe(projectUser.name); +});