From 0d7b50d1a8b9c643b911ddc8f43b31188a57ff5e Mon Sep 17 00:00:00 2001 From: sonusharma6-dsa Date: Fri, 5 Jun 2026 00:04:59 +0530 Subject: [PATCH 1/2] test: resolve Vitest constructor TypeError in PDFParse mock --- .../module/ats/__tests__/ats.service.test.ts | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/server/src/module/ats/__tests__/ats.service.test.ts b/server/src/module/ats/__tests__/ats.service.test.ts index 5e9148aee..1dc24c963 100644 --- a/server/src/module/ats/__tests__/ats.service.test.ts +++ b/server/src/module/ats/__tests__/ats.service.test.ts @@ -106,11 +106,12 @@ function mockCacheMiss() { function mockValidPdf(text = VALID_RESUME_TEXT) { vi.mocked(PDFParse).mockImplementation( - () => - ({ + function () { + return { getText: vi.fn().mockResolvedValue({ text }), destroy: vi.fn().mockResolvedValue(undefined), - }) as any, + } as any; + } ); } @@ -183,11 +184,12 @@ describe("AtsService", () => { mockUserOwnsResume(); mockCacheMiss(); vi.mocked(PDFParse).mockImplementation( - () => - ({ + function () { + return { getText: vi.fn().mockResolvedValue({ text: "too short" }), destroy: vi.fn().mockResolvedValue(undefined), - }) as any, + } as any; + } ); await expect( @@ -466,11 +468,12 @@ describe("AtsService", () => { it("throws when PDF text extraction yields insufficient content", async () => { mockUserOwnsResume(); vi.mocked(PDFParse).mockImplementation( - () => - ({ + function () { + return { getText: vi.fn().mockResolvedValue({ text: "tiny" }), destroy: vi.fn().mockResolvedValue(undefined), - }) as any, + } as any; + } ); await expect( From ec62d5437fd1f1a03aabf1a4c8a5683de09607eb Mon Sep 17 00:00:00 2001 From: sonusharma6-dsa Date: Thu, 4 Jun 2026 23:25:41 +0530 Subject: [PATCH 2/2] fix: resolve issue #1389 - Validate Feedback is Not Submitted on Cancelled Interviews --- server/src/module/interview/interview.service.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/src/module/interview/interview.service.ts b/server/src/module/interview/interview.service.ts index a1317a9fa..bc696ee10 100644 --- a/server/src/module/interview/interview.service.ts +++ b/server/src/module/interview/interview.service.ts @@ -130,6 +130,10 @@ export class InterviewService { async addFeedback(recruiterId: number, id: number, feedback: { interviewerId: number; rating: number; strengths?: string | undefined; weaknesses?: string | undefined; notes?: string | undefined; recommendation: string }) { const interview = await this.getById(recruiterId, id); + if (interview.status === "CANCELLED" || interview.status === "NO_SHOW") { + throw new Error("Cannot add feedback to a cancelled or no-show interview"); + } + const existingFeedback = (interview.feedback as Record[]) ?? []; // Replace existing feedback from same interviewer or append const filtered = existingFeedback.filter((f) => (f as { interviewerId?: number }).interviewerId !== feedback.interviewerId);