Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#4136 - Ecert File Creation - Need to generate 0 record files #4189

Merged
merged 11 commits into from
Dec 31, 2024
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,7 @@ describe(

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand All @@ -196,6 +195,30 @@ describe(
// TODO Add other fields as needed.
});

it("Should generate an e-cert file with only header and footer when there is no disbursement to be sent.", async () => {
// Queued job.
const { job } = mockBullJob<void>();

// Act
const result = await processor.processQueue(job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
dheepak-aot marked this conversation as resolved.
Show resolved Hide resolved

// Assert header and footer.
const [header, footer] = uploadedFile.fileLines;
// Validate header.
expect(header).toContain("100BC NEW ENTITLEMENT");
// Validate footer.
expect(footer.substring(0, 3)).toBe("999");
});

it("Should execute overawards deductions and calculate awards effective value", async () => {
// Arrange

Expand Down Expand Up @@ -266,12 +289,9 @@ describe(
// Act
const result = await processor.processQueue(job);

// Assert

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -511,12 +531,8 @@ describe(

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
expect(uploadedFile.remoteFilePath).toBe(
`MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`,
);
expect(uploadedFile.fileLines).toHaveLength(5);
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -698,12 +714,8 @@ describe(

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
expect(uploadedFile.remoteFilePath).toBe(
`MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`,
);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.fileLines).toHaveLength(3);
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -791,9 +803,12 @@ describe(
// Act
const result = await processor.processQueue(job);

// Assert 0 uploaded records.
// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
const [disbursement] =
Expand Down Expand Up @@ -864,8 +879,7 @@ describe(

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -933,8 +947,7 @@ describe(

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -1336,9 +1349,13 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
expect(
Expand Down Expand Up @@ -1381,5 +1398,15 @@ describe(
]);
},
);

/**
* Helper function to get the uploaded file name.
* @returns The uploaded file name
*/
function getUploadedFileName() {
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.FTECERTS.${fileDate}.001`;
return uploadedFileName;
}
},
);
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,14 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);

// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
expect(
Expand Down Expand Up @@ -173,9 +178,13 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
expect(
Expand Down Expand Up @@ -233,9 +242,14 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);

// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
const notificationsCount = await db.notification.count({
Expand All @@ -262,9 +276,14 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);

// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
const notificationsCount = await db.notification.count({
Expand Down Expand Up @@ -294,9 +313,14 @@ describe(
// Act
const result = await processor.processQueue(mockedJob.job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);

// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
expect(
Expand Down Expand Up @@ -366,12 +390,9 @@ describe(
// Act
const result = await processor.processQueue(job);

// Assert

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.NEW.PTCERTS.D${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -408,6 +429,30 @@ describe(
expect(scheduleIsSent).toBe(true);
});

it("Should generate an e-cert file with only header and footer when there is no disbursement to be sent.", async () => {
// Queued job.
const { job } = mockBullJob<void>();

// Act
const result = await processor.processQueue(job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
dheepak-aot marked this conversation as resolved.
Show resolved Hide resolved

// Assert header and footer
const [header, footer] = uploadedFile.fileLines;
// Validate header.
expect(header).toContain("01BC NEW PT ENTITLEMENT");
// Validate footer.
expect(footer.substring(0, 2)).toBe("99");
});

it("Should create an e-Cert with valid student profile data when the student has necessary profile data and gender defined as 'Prefer not to answer'.", async () => {
// Arrange
// Student with valid SIN.
Expand Down Expand Up @@ -552,8 +597,7 @@ describe(
// Assert
// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.NEW.PTCERTS.D${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -680,12 +724,9 @@ describe(
// Act
const result = await processor.processQueue(job);

// Assert

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.NEW.PTCERTS.D${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -792,9 +833,14 @@ describe(
// Act
const result = await processor.processQueue(job);

// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);

// Assert
expect(result).toStrictEqual([
"Generated file: none",
`Generated file: ${uploadedFileName}`,
"Uploaded records: 0",
]);
const [disbursement] =
Expand Down Expand Up @@ -906,8 +952,7 @@ describe(
// Assert
// Assert uploaded file.
const uploadedFile = getUploadedFile(sftpClientMock);
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.NEW.PTCERTS.D${fileDate}.001`;
const uploadedFileName = getUploadedFileName();
expect(uploadedFile.remoteFilePath).toBe(uploadedFileName);
expect(result).toStrictEqual([
`Generated file: ${uploadedFileName}`,
Expand Down Expand Up @@ -1443,5 +1488,15 @@ describe(
}),
).toBe(true);
});

/**
* Helper function to get the uploaded file name.
* @returns The uploaded file name
*/
function getUploadedFileName() {
const fileDate = dayjs().format("YYYYMMDD");
const uploadedFileName = `MSFT-Request\\DPBC.EDU.NEW.PTCERTS.D${fileDate}.001`;
return uploadedFileName;
}
},
);
Loading
Loading