Skip to content

Commit 584c25e

Browse files
committed
#3802 test fix
1 parent a0bdd03 commit 584c25e

1 file changed

Lines changed: 58 additions & 31 deletions

File tree

src/backend/tests/unit/change-requests.test.ts

Lines changed: 58 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)