@@ -2,6 +2,7 @@ import { ProjectMemberRole } from '../enums/projectMemberRole.enum';
22import { Scope } from '../enums/scopes.enum' ;
33import { UserRole } from '../enums/userRole.enum' ;
44import { Permission } from '../constants/permissions' ;
5+ import { PERMISSION } from '../constants/permissions.constants' ;
56import { PermissionService } from './permission.service' ;
67
78describe ( 'PermissionService' , ( ) => {
@@ -722,6 +723,31 @@ describe('PermissionService', () => {
722723 expect ( allowed ) . toBe ( true ) ;
723724 } ) ;
724725
726+ it ( 'blocks project copilots from editing project details' , ( ) => {
727+ const user = {
728+ userId : '3001' ,
729+ roles : [ UserRole . TC_COPILOT ] ,
730+ isMachine : false ,
731+ } ;
732+ const projectMembers = [
733+ {
734+ userId : '3001' ,
735+ role : ProjectMemberRole . COPILOT ,
736+ } ,
737+ ] ;
738+
739+ expect (
740+ service . hasNamedPermission (
741+ Permission . EDIT_PROJECT ,
742+ user ,
743+ projectMembers ,
744+ ) ,
745+ ) . toBe ( false ) ;
746+ expect (
747+ service . matchPermissionRule ( PERMISSION . UPDATE_PROJECT , user , projectMembers ) ,
748+ ) . toBe ( false ) ;
749+ } ) ;
750+
725751 it ( 'allows deleting project for machine token with project write scope' , ( ) => {
726752 const allowed = service . hasNamedPermission ( Permission . DELETE_PROJECT , {
727753 scopes : [ Scope . PROJECTS_ALL ] ,
0 commit comments