Skip to content

Commit

Permalink
Add tests for new status change.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bottle7 committed Aug 4, 2023
1 parent ce167ec commit 0acac7e
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ export const piaStatusMetadata: Partial<
'review.mpo.reviewNote': {
required: true,
},
'review.cpo[Object.keys(cpo)[0]].isAcknowledged': {
'review.cpo': {
required: true,
},
'review.programArea.reviews': {
Expand Down Expand Up @@ -400,7 +400,7 @@ export const piaStatusMetadata: Partial<
'review.mpo.reviewNote': {
required: true,
},
'review.cpo[Object.keys(cpo)[0]].isAcknowledged': {
'review.cpo': {
required: true,
},
'review.programArea.reviews': {
Expand Down
170 changes: 170 additions & 0 deletions src/backend/test/unit/pia-intake/handle-pia-status-change.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,4 +226,174 @@ describe(`handlePiaStatusChange method`, () => {
expect(e).toBeInstanceOf(ForbiddenException);
}
});

it('succeeds to change status of a DELEGATE PIA if MPO changes status from FINAL_REVIEW to PENDING_COMPLETION', async () => {
const userType: Array<UserTypesEnum> = [UserTypesEnum.MPO];

const storedValue: PiaIntakeEntity = {
...piaIntakeEntityMock,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
},
saveId: 10,
status: PiaIntakeStatusEnum.FINAL_REVIEW,
};

const updatedValue: UpdatePiaIntakeDto = {
status: PiaIntakeStatusEnum.PENDING_COMPLETION,
saveId: 10,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
},
};

handlePiaStatusChange(
updatedValue,
storedValue,
userType,
PiaTypesEnum.DELEGATE_REVIEW,
);

expect(updatedValue.review).not.toBe(null);
});

it('succeeds to change status of a STANDARD PIA if CPO changes status from FINAL_REVIEW to PENDING_COMPLETION with a CPO review', async () => {
const userType: Array<UserTypesEnum> = [UserTypesEnum.CPO];

const storedValue: PiaIntakeEntity = {
...piaIntakeEntityMock,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
},
saveId: 10,
status: PiaIntakeStatusEnum.FINAL_REVIEW,
};

const updatedValue: UpdatePiaIntakeDto = {
status: PiaIntakeStatusEnum.PENDING_COMPLETION,
saveId: 10,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
cpo: {
1234: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
};

handlePiaStatusChange(
updatedValue,
storedValue,
userType,
PiaTypesEnum.STANDARD,
);

expect(updatedValue.review.cpo).not.toBe(null);
});

it('DOES NOT succeed to change status of a STANDARD PIA if CPO changes status from FINAL_REVIEW to PENDING_COMPLETION without a CPO review', async () => {
const userType: Array<UserTypesEnum> = [UserTypesEnum.CPO];

const storedValue: PiaIntakeEntity = {
...piaIntakeEntityMock,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
},
saveId: 10,
status: PiaIntakeStatusEnum.FINAL_REVIEW,
};

const updatedValue: UpdatePiaIntakeDto = {
status: PiaIntakeStatusEnum.PENDING_COMPLETION,
saveId: 10,
review: {
mpo: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
programArea: {
selectedRoles: ['Director'],
reviews: {
Director: {
isAcknowledged: true,
reviewNote: 'ABCD2',
},
},
},
},
};

try {
handlePiaStatusChange(
updatedValue,
storedValue,
userType,
PiaTypesEnum.STANDARD,
);
} catch (e) {
expect(e).toBeInstanceOf(ForbiddenException);
}
});
});

0 comments on commit 0acac7e

Please sign in to comment.