@@ -295,33 +295,52 @@ describe('Change Request Tests', () => {
295295 let changeRequestId : string ;
296296
297297 beforeEach ( async ( ) => {
298+ // Use the existing user from the main beforeEach
298299 submitterUser = user ;
299- leadershipUser1 = await createTestUser ( aquamanLeadership , orgId ) ;
300- leadershipUser2 = await createTestUser ( greenlanternHead , orgId ) ;
301- nonRequestedLeadership = await createTestUser ( flashAdmin , orgId ) ;
302- memberUser = await createTestUser ( robinMember , orgId ) ;
303300
304- const projPropChanges : ProjectProposedChangesCreateArgs = {
305- name : 'Test Project' ,
306- descriptionBullets : [ ] ,
307- links : [ ] ,
308- budget : 10 ,
309- summary : 'Test Summary' ,
310- teamIds : [ ] ,
311- workPackageProposedChanges : [ ]
312- } ;
301+ // Create users with User_Settings that include slackId (needed for requestCRReview)
302+ leadershipUser1 = await createTestUser ( aquamanLeadership , orgId , {
303+ id : 'aquaman-settings' ,
304+ userId : '' ,
305+ defaultTheme : 'DARK' as any ,
306+ slackId : 'slack-aquaman'
307+ } ) ;
313308
309+ leadershipUser2 = await createTestUser ( greenlanternHead , orgId , {
310+ id : 'greenlantern-settings' ,
311+ userId : '' ,
312+ defaultTheme : 'DARK' as any ,
313+ slackId : 'slack-greenlantern'
314+ } ) ;
315+
316+ nonRequestedLeadership = await createTestUser ( flashAdmin , orgId , {
317+ id : 'flash-settings' ,
318+ userId : '' ,
319+ defaultTheme : 'DARK' as any ,
320+ slackId : 'slack-flash'
321+ } ) ;
322+
323+ memberUser = await createTestUser ( robinMember , orgId ) ;
324+
325+ // Create a simple change request with a proposed solution
314326 const cr = await ChangeRequestsService . createStandardChangeRequest (
315327 submitterUser ,
316328 12 ,
317329 13 ,
318330 14 ,
319- CR_Type . DEFINITION_CHANGE ,
331+ CR_Type . ISSUE ,
320332 'What is being changed' ,
321333 [ { type : Scope_CR_Why_Type . COMPETITION , explain : 'Why it is being changed' } ] ,
322- [ ] ,
334+ [
335+ {
336+ description : 'Proposed solution' ,
337+ scopeImpact : 'Low impact' ,
338+ timelineImpact : 0 ,
339+ budgetImpact : 0
340+ }
341+ ] ,
323342 organization ,
324- projPropChanges ,
343+ null ,
325344 null
326345 ) ;
327346
@@ -333,7 +352,7 @@ describe('Change Request Tests', () => {
333352 nonRequestedLeadership ,
334353 changeRequestId ,
335354 'Looks good' ,
336- true ,
355+ false ,
337356 organization ,
338357 null
339358 ) ;
@@ -345,7 +364,7 @@ describe('Change Request Tests', () => {
345364 } ) ;
346365
347366 expect ( updatedCR ?. reviewerId ) . toBe ( nonRequestedLeadership . userId ) ;
348- expect ( updatedCR ?. accepted ) . toBe ( true ) ;
367+ expect ( updatedCR ?. accepted ) . toBe ( false ) ;
349368 } ) ;
350369
351370 it ( 'allows requested reviewer to review when reviewers are requested' , async ( ) => {
@@ -360,7 +379,7 @@ describe('Change Request Tests', () => {
360379 leadershipUser1 ,
361380 changeRequestId ,
362381 'Approved' ,
363- true ,
382+ false ,
364383 organization ,
365384 null
366385 ) ;
@@ -372,7 +391,7 @@ describe('Change Request Tests', () => {
372391 } ) ;
373392
374393 expect ( updatedCR ?. reviewerId ) . toBe ( leadershipUser1 . userId ) ;
375- expect ( updatedCR ?. accepted ) . toBe ( true ) ;
394+ expect ( updatedCR ?. accepted ) . toBe ( false ) ;
376395 } ) ;
377396
378397 it ( 'rejects non-requested leadership when reviewers are requested' , async ( ) => {
@@ -418,7 +437,7 @@ describe('Change Request Tests', () => {
418437 leadershipUser2 ,
419438 changeRequestId ,
420439 'Approved by second reviewer' ,
421- true ,
440+ false ,
422441 organization ,
423442 null
424443 ) ;
@@ -430,20 +449,28 @@ describe('Change Request Tests', () => {
430449 } ) ;
431450
432451 expect ( updatedCR ?. reviewerId ) . toBe ( leadershipUser2 . userId ) ;
433- expect ( updatedCR ?. accepted ) . toBe ( true ) ;
452+ expect ( updatedCR ?. accepted ) . toBe ( false ) ;
434453 } ) ;
435454
436- it ( 'rejects member user even when they are in requested reviewers' , async ( ) => {
437- await ChangeRequestsService . requestCRReview (
438- submitterUser ,
439- [ leadershipUser1 . userId , memberUser . userId ] ,
440- changeRequestId ,
441- organization
442- ) ;
455+ it ( 'rejects member user from being requested as a reviewer' , async ( ) => {
456+ // requestCRReview should fail when trying to add a non-leadership user
457+ await expect (
458+ ChangeRequestsService . requestCRReview (
459+ submitterUser ,
460+ [ leadershipUser1 . userId , memberUser . userId ] ,
461+ changeRequestId ,
462+ organization
463+ )
464+ ) . rejects . toThrow ( AccessDeniedException ) ;
443465
444466 await expect (
445- ChangeRequestsService . reviewChangeRequest ( memberUser , changeRequestId , 'I want to review' , false , organization , null )
446- ) . rejects . toThrow ( ) ;
467+ ChangeRequestsService . requestCRReview (
468+ submitterUser ,
469+ [ leadershipUser1 . userId , memberUser . userId ] ,
470+ changeRequestId ,
471+ organization
472+ )
473+ ) . rejects . toThrow ( 'The following user(s) are not leadership: Dick Grayson' ) ;
447474 } ) ;
448475
449476 it ( 'allows rejection by non-requested leadership when reviewers are requested' , async ( ) => {
0 commit comments