forked from Yara724/api
113 lines
3.7 KiB
TypeScript
113 lines
3.7 KiB
TypeScript
import { Types } from "mongoose";
|
|
import { CaseStatus } from "src/Types&Enums/blame-request-management/caseStatus.enum";
|
|
import { ClaimCaseStatus } from "src/Types&Enums/claim-request-management/claim-case-status.enum";
|
|
import { RoleEnum } from "src/Types&Enums/role.enum";
|
|
import { RequestManagementService } from "./request-management.service";
|
|
|
|
describe("FileMaker V4/V5 status resume bridge", () => {
|
|
const makerId = new Types.ObjectId();
|
|
const blameId = new Types.ObjectId();
|
|
|
|
const blameFile = {
|
|
_id: blameId,
|
|
publicId: "BL-FM-001",
|
|
requestNo: "R-1",
|
|
type: "THIRD_PARTY",
|
|
status: CaseStatus.OPEN,
|
|
blameStatus: "IN_PROGRESS",
|
|
isMadeByFileMaker: true,
|
|
initiatedByFieldExpertId: makerId,
|
|
requiresFileMakerApproval: false,
|
|
parties: [],
|
|
workflow: {
|
|
currentStep: "SECOND_COMPLETED",
|
|
nextStep: "WAITING_FOR_GUILT_DECISION",
|
|
completedSteps: ["SECOND_COMPLETED"],
|
|
},
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
};
|
|
|
|
it("overlays claim UPLOADING_REQUIRED_DOCUMENTS onto detail status", async () => {
|
|
const service =
|
|
new (RequestManagementService as any)() as RequestManagementService;
|
|
(service as any).blameRequestDbService = {
|
|
findById: jest.fn().mockResolvedValue(blameFile),
|
|
};
|
|
(service as any).claimCaseDbService = {
|
|
findOne: jest.fn().mockResolvedValue({
|
|
_id: new Types.ObjectId(),
|
|
blameRequestId: blameId,
|
|
status: ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS,
|
|
workflow: {
|
|
currentStep: "UPLOAD_REQUIRED_DOCUMENTS",
|
|
nextStep: "SELECT_OUTER_PARTS",
|
|
},
|
|
}),
|
|
};
|
|
|
|
const detail = await service.getMyFileMakerFileDetail(
|
|
{ sub: String(makerId), role: RoleEnum.FILE_MAKER },
|
|
String(blameId),
|
|
);
|
|
|
|
expect(detail.status).toBe(ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS);
|
|
expect(detail.blameCaseStatus).toBe(CaseStatus.OPEN);
|
|
expect(detail.claimStatus).toBe(
|
|
ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS,
|
|
);
|
|
});
|
|
|
|
it("does not overlay status when claim docs phase is finished", async () => {
|
|
const service =
|
|
new (RequestManagementService as any)() as RequestManagementService;
|
|
(service as any).blameRequestDbService = {
|
|
findById: jest.fn().mockResolvedValue({
|
|
...blameFile,
|
|
status: CaseStatus.WAITING_FOR_FILE_REVIEWER,
|
|
}),
|
|
};
|
|
(service as any).claimCaseDbService = {
|
|
findOne: jest.fn().mockResolvedValue({
|
|
_id: new Types.ObjectId(),
|
|
blameRequestId: blameId,
|
|
status: ClaimCaseStatus.WAITING_FOR_FILE_REVIEWER,
|
|
workflow: { currentStep: "SELECT_OUTER_PARTS" },
|
|
}),
|
|
};
|
|
|
|
const detail = await service.getMyFileMakerFileDetail(
|
|
{ sub: String(makerId), role: RoleEnum.FILE_MAKER },
|
|
String(blameId),
|
|
);
|
|
|
|
expect(detail.status).toBe(CaseStatus.WAITING_FOR_FILE_REVIEWER);
|
|
expect(detail.blameCaseStatus).toBeUndefined();
|
|
});
|
|
|
|
it("overlays the same bridge on my-files list rows", async () => {
|
|
const service =
|
|
new (RequestManagementService as any)() as RequestManagementService;
|
|
(service as any).blameRequestDbService = {
|
|
find: jest.fn().mockResolvedValue([blameFile]),
|
|
};
|
|
(service as any).claimCaseDbService = {
|
|
find: jest.fn().mockResolvedValue([
|
|
{
|
|
blameRequestId: blameId,
|
|
status: ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS,
|
|
},
|
|
]),
|
|
};
|
|
|
|
const rows = await service.getMyFileMakerFiles({
|
|
sub: String(makerId),
|
|
role: RoleEnum.FILE_MAKER,
|
|
});
|
|
|
|
expect(rows).toHaveLength(1);
|
|
expect(rows[0].status).toBe(ClaimCaseStatus.UPLOADING_REQUIRED_DOCUMENTS);
|
|
expect(rows[0].blameCaseStatus).toBe(CaseStatus.OPEN);
|
|
});
|
|
});
|