import { ExpertInitiatedClaimMirrorController } from "./expert-initiated-claim.mirror.controller"; import { FileReviewerBlameV4Controller } from "../request-management/file-reviewer-blame-v4.controller"; import { FileReviewerBlameV5Controller } from "../request-management/file-reviewer-blame-v5.controller"; describe("owner insurer approval mirror endpoints", () => { const claimRequestId = "507f1f77bcf86cd799439011"; const actor = { sub: "507f1f77bcf86cd799439012" }; const sign = { filename: "sign.png", path: "/tmp/sign.png", } as Express.Multer.File; const createDependencies = () => { const claimRequestManagementService = { submitOwnerInsurerApprovalSignV2: jest .fn() .mockResolvedValue({ accepted: true }), }; const mediaPolicyService = { assertForClaim: jest.fn().mockResolvedValue(undefined), }; return { claimRequestManagementService, mediaPolicyService }; }; it.each([ [ "expert-initiated", (deps: ReturnType) => new ExpertInitiatedClaimMirrorController( deps.claimRequestManagementService as never, deps.mediaPolicyService as never, ), ], [ "V4 file-reviewer", (deps: ReturnType) => new FileReviewerBlameV4Controller( {} as never, deps.claimRequestManagementService as never, deps.mediaPolicyService as never, ), ], [ "V5 file-reviewer", (deps: ReturnType) => new FileReviewerBlameV5Controller( {} as never, deps.claimRequestManagementService as never, deps.mediaPolicyService as never, ), ], ])( "forwards a signature without branchId through the %s endpoint", async (_name, createController) => { const dependencies = createDependencies(); const controller = createController(dependencies) as { submitOwnerSign: (...args: any[]) => Promise; }; await controller.submitOwnerSign(claimRequestId, "true", actor, sign); expect( dependencies.mediaPolicyService.assertForClaim, ).toHaveBeenCalledWith(sign, claimRequestId, "image"); expect( dependencies.claimRequestManagementService .submitOwnerInsurerApprovalSignV2, ).toHaveBeenCalledWith(claimRequestId, true, sign, actor.sub, actor); }, ); });