@@ -9,6 +9,7 @@ const { v4: uuid } = require('uuid')
99const service = require ( '../../src/services/ResourceService' )
1010const ResourceRolePhaseDependencyService = require ( '../../src/services/ResourceRolePhaseDependencyService' )
1111const prisma = require ( '../../src/common/prisma' ) . getClient ( )
12+ const helper = require ( '../../src/common/helper' )
1213const ResourceRoleService = require ( '../../src/services/ResourceRoleService' )
1314const { requestBody, user } = require ( '../common/testData' )
1415const { assertValidationError, assertError, assertResource, getRoleIds, clearDependencies } = require ( '../common/testHelper' )
@@ -264,6 +265,39 @@ module.exports = describe('Create resource', () => {
264265 await assertResource ( ret . id , ret )
265266 } )
266267
268+ it ( 'copilot can manage resources without full access flags' , async ( ) => {
269+ const originalRole = await helper . getById ( 'ResourceRole' , copilotRoleId )
270+ await ResourceRoleService . updateResourceRole ( user . admin , copilotRoleId , {
271+ name : originalRole . name ,
272+ fullReadAccess : false ,
273+ fullWriteAccess : false ,
274+ isActive : originalRole . isActive ,
275+ selfObtainable : originalRole . selfObtainable
276+ } )
277+
278+ const entity = resources . createBody ( 'diazz' , reviewerRoleId , challengeId2 )
279+ let createdResource
280+ try {
281+ createdResource = await service . createResource ( user . phead , entity )
282+ should . equal ( createdResource . roleId , entity . roleId )
283+ should . equal ( createdResource . memberHandle . toLowerCase ( ) , entity . memberHandle . toLowerCase ( ) )
284+ await assertResource ( createdResource . id , createdResource )
285+ } finally {
286+ if ( createdResource && createdResource . id ) {
287+ await prisma . resource . deleteMany ( {
288+ where : { id : createdResource . id }
289+ } )
290+ }
291+ await ResourceRoleService . updateResourceRole ( user . admin , copilotRoleId , {
292+ name : originalRole . name ,
293+ fullReadAccess : originalRole . fullReadAccess ,
294+ fullWriteAccess : originalRole . fullWriteAccess ,
295+ isActive : originalRole . isActive ,
296+ selfObtainable : originalRole . selfObtainable
297+ } )
298+ }
299+ } )
300+
267301 it ( 'create resource for user ghostar 1' , async ( ) => {
268302 const entity = resources . createBody ( 'ghostar' , reviewerRoleId , challengeId2 )
269303 const ret = await service . createResource ( user . m2m , entity )
0 commit comments