diff --git a/sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn b/sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn index 4b06bdb371..0c19235f4b 100644 --- a/sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn +++ b/sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn @@ -93,21 +93,22 @@ Note: the workflow process should continue its execution as a regular reassessme save-disbursement-task save-assessment-data-part-time-task save-assessment-data-task - Gateway_1hwknxt release-assessment-calculation-message - associate-msfaa-task + Event_0mtgfbi + workflow-wrap-up-task + Event_0w0bgro update-noa-status-to-not-required-task update-noa-status-to-not-required-application-completed-task Gateway_1xse027 Gateway_04wql0w Gateway_0f9knk0 + Gateway_1m2js1c + associate-msfaa-task update-application-status-to-assessment-task update-noa-status-to-required-task - Gateway_1m2js1c - Event_0mtgfbi - workflow-wrap-up-task - Event_0w0bgro - Activity_122mg53 + Gateway_1hwknxt + Activity_0d78x0s + Activity_1vyml74 @@ -210,11 +211,6 @@ Note: the workflow process should continue its execution as a regular reassessme Flow_0wed99j Flow_1izp0bk - - Flow_1izp0bk - Flow_1f8ymzi - Flow_1mpwyku - Flow_1rn6agw Flow_1uh1kyu @@ -303,77 +299,6 @@ Note: the workflow process should continue its execution as a regular reassessme Flow_0358dxp - - - - - - - - Flow_1mpwyku - Flow_1atzf7v - - - - - - - - - Flow_01iq5cw - Flow_0hmh3m7 - - - - - - - - - Flow_1wkpr1a - Flow_1o87o98 - - - Flow_1atzf7v - Flow_1cb5fpw - Flow_1wkpr1a - - - Flow_0p1lgm7 - Flow_0hmh3m7 - Flow_0z518wc - - - Flow_0z518wc - Flow_1o87o98 - Flow_1txrz77 - - - - - - - - - - Flow_1a4wzic - Flow_0mayggl - - - - - - - - - Flow_0mayggl - Flow_0p1lgm7 - - - Flow_1cb5fpw - Flow_1a4wzic - Flow_01iq5cw - Flow_10lg2ud verify-application-exceptions-retry-timer-flow @@ -766,8 +691,8 @@ Note: the workflow process should continue its execution as a regular reassessme - - + + @@ -790,23 +715,9 @@ Note: the workflow process should continue its execution as a regular reassessme - - - =applicationHasNOAApproval = true - - - - =applicationStatus = "Completed" - - - - - - + - - @@ -898,21 +809,123 @@ Note: the workflow process should continue its execution as a regular reassessme - Flow_0toffjh + Flow_1txrz77 Flow_0rkzx2d - - + + + + + + + + Flow_01iq5cw + Flow_0hmh3m7 + + + + + + + + + Flow_1wkpr1a + Flow_1o87o98 + + + Flow_1atzf7v + Flow_1cb5fpw + Flow_1wkpr1a + + + Flow_0p1lgm7 + Flow_0hmh3m7 + Flow_0z518wc + + + Flow_0z518wc + Flow_1o87o98 + Flow_1txrz77 + + + Flow_1cb5fpw + Flow_1a4wzic + Flow_01iq5cw + + + + + + + + + Flow_1mpwyku + Flow_1atzf7v + + + + + + + + + + Flow_1a4wzic + Flow_0mayggl + + + + + + + + + Flow_0mayggl + Flow_0p1lgm7 + + + =applicationHasNOAApproval = true + + + + =applicationStatus = "Completed" + + + + + + + + + + Flow_13rnc99 + Flow_17bbn8b + Flow_1mpwyku + + - + - Flow_1txrz77 - Flow_0toffjh + Flow_1f8ymzi + Flow_13rnc99 + + + + + + + + + + + Flow_1izp0bk + Flow_17bbn8b + @@ -1012,9 +1025,6 @@ Note: the workflow process should continue its execution as a regular reassessme - - - @@ -1052,38 +1062,6 @@ Note: the workflow process should continue its execution as a regular reassessme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1155,6 +1133,49 @@ Note: the workflow process should continue its execution as a regular reassessme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1250,10 +1271,6 @@ Note: the workflow process should continue its execution as a regular reassessme - - - - @@ -1349,16 +1366,15 @@ Note: the workflow process should continue its execution as a regular reassessme - - + - + - - + + @@ -1444,55 +1460,9 @@ Note: the workflow process should continue its execution as a regular reassessme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -1502,18 +1472,6 @@ Note: the workflow process should continue its execution as a regular reassessme - - - - - - - - - - - - @@ -1723,9 +1681,72 @@ Note: the workflow process should continue its execution as a regular reassessme - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2025-2026.bpmn b/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2025-2026.bpmn index 8f07460ba5..4a0926525c 100644 --- a/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2025-2026.bpmn +++ b/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2025-2026.bpmn @@ -1,5 +1,5 @@ - + @@ -2144,7 +2144,7 @@ If distance education/blended learning program or if married and claiming separa - + Flow_119pdg5 @@ -2153,7 +2153,7 @@ If distance education/blended learning program or if married and claiming separa - + Flow_1qvqrur @@ -2252,7 +2252,7 @@ Map the correct 1 or 2 values for each of the values used to calculate income, d - + diff --git a/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2026-2027.bpmn b/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2026-2027.bpmn index d4baa37c49..550de35f17 100644 --- a/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2026-2027.bpmn +++ b/sources/packages/backend/workflow/src/workflow-definitions/fulltime-assessment-2026-2027.bpmn @@ -477,7 +477,6 @@ calculatedDataParent1TaxRate Event_0bk5jrr Event_1n57xgo Event_1bl5l5x - Event_1ikowt9 Activity_05w97d8 Activity_17g355h Activity_0yaowp1 @@ -488,6 +487,7 @@ calculatedDataParent1TaxRate Event_0zvfjsx Event_1dvt26b Event_0gwvumx + Activity_1btmzxj @@ -1260,10 +1260,10 @@ Federal Unmet Provincial Need = Provincial portion of Fed Need less Adjusted BCS Student Loan Payments by Partner during the study period can be considered a cost. -Priority to loan reported by partner directly, then by student. Otherwise will be 0. +If the student does not have a partner, this value should be 0. - + Flow_1c0irgd @@ -1724,7 +1724,7 @@ There is also a per application limit based on the number of weeks in the offeri - + Flow_119pdg5 @@ -1733,7 +1733,7 @@ There is also a per application limit based on the number of weeks in the offeri - + Flow_1qvqrur @@ -1832,7 +1832,7 @@ Map the correct 1 or 2 values for each of the values used to calculate income, d - + @@ -2085,18 +2085,18 @@ Priority to loan reported by partner directly, then by student. Otherwise will b Alimony/Child Support paid by the Partner during the study period can be considered towards costs. If not entered, consider their costs for this 0. - - - + + + - Flow_0ssiiff + Flow_1iz59pc Flow_1gzgc13 - + Flow_1gzgc13 @@ -2105,7 +2105,7 @@ Alimony/Child Support paid by the Partner during the study period can be conside - + Flow_1w7m8ku @@ -2114,7 +2114,7 @@ Alimony/Child Support paid by the Partner during the study period can be conside - + Flow_0l4ido8 @@ -2123,27 +2123,13 @@ Alimony/Child Support paid by the Partner during the study period can be conside - - + + Flow_0wb0sz0 Flow_0ixsnmb - - The priority for Income used in the assessment is: -1. Current Year -2. CRA Reported -3. Self Reported (Own Income) -4. Self Reported (Student) - - - - - - Flow_1ekiozl - Flow_0ssiiff - @@ -2373,7 +2359,7 @@ Alimony/Child Support paid by the Partner during the study period can be conside = (studentDataRelationshipStatus = "single" or studentDataRelationshipStatus = "other" or studentDataRelationshipStatus = "marriedUnable") and studentDataDependantstatus = "independant" - + = studentDataRelationshipStatus = "married" @@ -2412,7 +2398,6 @@ Alimony/Child Support paid by the Partner during the study period can be conside - @@ -2444,8 +2429,7 @@ Alimony/Child Support paid by the Partner during the study period can be conside The priority for Income used in the assessment is: 1. Current Year 2. CRA Reported -3. Self Reported (Own Income) -4. Self Reported (Student) +3. Self Reported @@ -2480,6 +2464,7 @@ Alimony/Child Support paid by the Partner during the study period can be conside + Flow_1u26ach @@ -2574,6 +2559,61 @@ This also brings in the total PY spouse contribution weeks value if it exists. + + Flow_1ekiozl + Flow_1iz59pc + + The priority for Income used in the assessment is: +1. Current Year +2. CRA Reported +3. Self Reported + + + + + + Flow_172u6ft + Flow_10kg3iw + + + Flow_1sldl88 + Flow_172u6ft + Flow_15nsohu + + + The priority for Income used in the assessment is: +1. Current Year +2. CRA Reported +3. Self Reported + + + + + + Flow_15nsohu + Flow_17z521s + + + Flow_10kg3iw + Flow_17z521s + Flow_1k3l7oj + + + Flow_1sldl88 + + + Flow_1k3l7oj + + + + + + =appealsPartnerCurrentYearIncomeAppealData != null + + + + + @@ -2641,24 +2681,24 @@ This also brings in the total PY spouse contribution weeks value if it exists. + + + + - - + + - - - - - - + + @@ -3536,6 +3576,10 @@ This also brings in the total PY spouse contribution weeks value if it exists. + + + + @@ -3569,16 +3613,14 @@ This also brings in the total PY spouse contribution weeks value if it exists. - - - - - - + + + + @@ -3621,12 +3663,8 @@ This also brings in the total PY spouse contribution weeks value if it exists. - - - - - - + + @@ -4514,15 +4552,15 @@ This also brings in the total PY spouse contribution weeks value if it exists. - + - + - + @@ -4654,10 +4692,6 @@ This also brings in the total PY spouse contribution weeks value if it exists. - - - - @@ -4702,85 +4736,9 @@ This also brings in the total PY spouse contribution weeks value if it exists. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -4990,6 +4948,86 @@ This also brings in the total PY spouse contribution weeks value if it exists. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5153,72 +5191,143 @@ This also brings in the total PY spouse contribution weeks value if it exists. + + + + + + - + - + - - + + - + - + - - - - - + + - + - - - - - + + - - - + + + - + - - - + + + - - - + + + - + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sources/packages/backend/workflow/src/workflow-definitions/load-assessment-consolidated-data.bpmn b/sources/packages/backend/workflow/src/workflow-definitions/load-assessment-consolidated-data.bpmn index 46cc413330..d56004c79a 100644 --- a/sources/packages/backend/workflow/src/workflow-definitions/load-assessment-consolidated-data.bpmn +++ b/sources/packages/backend/workflow/src/workflow-definitions/load-assessment-consolidated-data.bpmn @@ -79,8 +79,8 @@ - - + + @@ -177,4 +177,4 @@ - \ No newline at end of file + diff --git a/sources/packages/backend/workflow/src/workflow-definitions/parttime-assessment-2026-2027.bpmn b/sources/packages/backend/workflow/src/workflow-definitions/parttime-assessment-2026-2027.bpmn index 0cddf021fa..3b660e8f2f 100644 --- a/sources/packages/backend/workflow/src/workflow-definitions/parttime-assessment-2026-2027.bpmn +++ b/sources/packages/backend/workflow/src/workflow-definitions/parttime-assessment-2026-2027.bpmn @@ -835,6 +835,7 @@ dmnX (comes from dmn) + Flow_1tcyqyg @@ -855,7 +856,7 @@ dmnX (comes from dmn) - + Flow_1sqp89w Flow_1mrd0pj @@ -869,10 +870,9 @@ dmnX (comes from dmn) The priority for Income used in the assessment is: 1. Current Year 2. CRA Reported -3. Self Reported (Own Income) -4. Self Reported (Student) +3. Self Reported - + Flow_0kzutrb Flow_03zrtci @@ -883,7 +883,7 @@ dmnX (comes from dmn) Flow_0bhp3uf - =studentDataCurrentYearPartnerIncome != null + =appealsPartnerCurrentYearIncomeAppealData != null @@ -1949,10 +1949,6 @@ dmnX (comes from dmn) - - - - @@ -2035,6 +2031,10 @@ dmnX (comes from dmn) + + + + @@ -2111,10 +2111,10 @@ dmnX (comes from dmn) - - - - + + + + diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/eligibility/fulltime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/eligibility/fulltime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts new file mode 100644 index 0000000000..8a0612407c --- /dev/null +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/eligibility/fulltime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts @@ -0,0 +1,127 @@ +import { PROGRAM_YEAR } from "../../../constants/program-year.constants"; +import { + ZeebeMockedClient, + createFakeConsolidatedFulltimeData, + executeFullTimeAssessmentForProgramYear, +} from "../../../../test-utils"; +import { YesNoOptions } from "@sims/test-utils"; + +describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-appeal-eligibility-partner-current-year-income.`, () => { + it("Should evaluate the partner current year income appeal as eligible when the student is married.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.partner1TotalIncome = 100002; + assessmentConsolidatedData.partner1PartnerCaringForDependant = + YesNoOptions.No; + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = + YesNoOptions.No; + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = + YesNoOptions.No; + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = + YesNoOptions.No; + + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(true); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student is single and independant.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "single"; + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student relationship status is other and independant.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "other"; + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student relationship status is unable to report and independant.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "marriedUnable"; + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student is dependant.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + + assessmentConsolidatedData.studentDataDependantstatus = "dependant"; + assessmentConsolidatedData.parent1TotalIncome = 99999; + assessmentConsolidatedData.parent1CppEmployment = 500; + assessmentConsolidatedData.parent1CppSelfemploymentOther = 200; + assessmentConsolidatedData.parent1Ei = 600; + assessmentConsolidatedData.parent1Tax = 700; + assessmentConsolidatedData.parent1Contributions = 0; + assessmentConsolidatedData.studentDataVoluntaryContributions = 0; + assessmentConsolidatedData.studentDataParents = [ + { + parentIsAbleToReport: YesNoOptions.Yes, + }, + ]; + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + afterAll(async () => { + // Closes the singleton instance created during test executions. + await ZeebeMockedClient.getMockedZeebeInstance().close(); + }); +}); diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/fulltime-assessment-partner-current-year-income.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/fulltime-assessment-partner-current-year-income.e2e-spec.ts new file mode 100644 index 0000000000..f910334b15 --- /dev/null +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/appeals/fulltime-assessment-partner-current-year-income.e2e-spec.ts @@ -0,0 +1,78 @@ +import { PROGRAM_YEAR } from "../../constants/program-year.constants"; +import { + ZeebeMockedClient, + createFakeConsolidatedFulltimeData, + executeFullTimeAssessmentForProgramYear, +} from "../../../test-utils"; + +describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-partner-current-year-income.`, () => { + it("Should use application values when there is no partner current year income appeal and no CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = null; + assessmentConsolidatedData.partner1TotalIncome = 1234; + assessmentConsolidatedData.partner1CRAReportedIncome = null; + + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(1234); + }); + + it("Should use the appeal current year income values when there is a partner current year income appeal and the partner has no CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = { + currentYearIncome: 20001, + }; + assessmentConsolidatedData.partner1TotalIncome = 100002; + assessmentConsolidatedData.partner1CRAReportedIncome = null; + + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(20001); + }); + + it("Should use the appeal current year income values when there is a partner current year income appeal and the partner has CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedFulltimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = { + currentYearIncome: 20001, + }; + assessmentConsolidatedData.partner1CRAReportedIncome = 1000001; + assessmentConsolidatedData.partner1TotalIncome = 100002; + // Act + const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(20001); + }); + + afterAll(async () => { + // Closes the singleton instance created during test executions. + await ZeebeMockedClient.getMockedZeebeInstance().close(); + }); +}); diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/contribution/fulltime-assessment-spouse-contribution.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/contribution/fulltime-assessment-spouse-contribution.e2e-spec.ts index e54b0ede2e..bf5560853c 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/contribution/fulltime-assessment-spouse-contribution.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/contribution/fulltime-assessment-spouse-contribution.e2e-spec.ts @@ -13,13 +13,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( @@ -75,13 +75,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; // Act @@ -133,15 +133,15 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataPartnerStudyWeeks = 12; + assessmentConsolidatedData.partner1StudentStudyWeeks = 12; // Act const calculatedAssessment = @@ -197,13 +197,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; assessmentConsolidatedData.programYearTotalFullTimeSpouseContributionWeeks = 20; // Spouse contribution for 20 weeks have been calculated in the program year. @@ -263,13 +263,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; // Act @@ -325,13 +325,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 10000; + assessmentConsolidatedData.partner1TotalIncome = 10000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; // Act @@ -387,13 +387,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; // Act @@ -449,13 +449,13 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; @@ -512,16 +512,16 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-spouse-contribut createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 30000; + assessmentConsolidatedData.partner1TotalIncome = 30000; assessmentConsolidatedData.studentDataYouthInCare = YesNoOptions.Yes; // The spouse is a full-time student for more weeks than the student's offering weeks (16). - assessmentConsolidatedData.studentDataPartnerStudyWeeks = 20; + assessmentConsolidatedData.partner1StudentStudyWeeks = 20; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-alimony-support.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-alimony-support.e2e-spec.ts index 2ad1ced3c4..d96aea8809 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-alimony-support.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-alimony-support.e2e-spec.ts @@ -99,16 +99,15 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-alimony-s const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataChildSupportAndOrSpousalSupport = 3500; - assessmentConsolidatedData.studentDataPartnerChildSupportCosts = null; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; + assessmentConsolidatedData.partner1ChildSpousalSupportCost = null; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( @@ -135,16 +134,15 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-alimony-s const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataChildSupportAndOrSpousalSupport = 2000; - assessmentConsolidatedData.studentDataPartnerChildSupportCosts = 1000; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; + assessmentConsolidatedData.partner1ChildSpousalSupportCost = 1000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( @@ -172,17 +170,16 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-alimony-s const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataChildSupportAndOrSpousalSupport = 2000; - assessmentConsolidatedData.studentDataPartnerStudyWeeks = 13; - assessmentConsolidatedData.studentDataPartnerChildSupportCosts = 1000; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; + assessmentConsolidatedData.partner1StudentStudyWeeks = 13; + assessmentConsolidatedData.partner1ChildSpousalSupportCost = 1000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( @@ -211,15 +208,14 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-alimony-s createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataChildSupportAndOrSpousalSupport = 3000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerChildSupportCosts = 2000; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1ChildSpousalSupportCost = 2000; + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-child-care-cost.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-child-care-cost.e2e-spec.ts index d2f633eda3..c266ce4dac 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-child-care-cost.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-child-care-cost.e2e-spec.ts @@ -65,9 +65,8 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-child-car assessmentConsolidatedData.studentDataDaycareCosts11YearsOrUnder = 1000; assessmentConsolidatedData.offeringWeeks = 18; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerStudyWeeks = 3; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 10000; + assessmentConsolidatedData.partner1StudentStudyWeeks = 3; + assessmentConsolidatedData.partner1TotalIncome = 10000; assessmentConsolidatedData.studentDataTaxReturnIncome = 10002; // Creates 1 eligible dependent. assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; @@ -111,9 +110,8 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-child-car assessmentConsolidatedData.studentDataDaycareCosts11YearsOrUnder = 1000; assessmentConsolidatedData.offeringWeeks = 18; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerStudyWeeks = 13; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 10000; + assessmentConsolidatedData.partner1StudentStudyWeeks = 13; + assessmentConsolidatedData.partner1TotalIncome = 10000; assessmentConsolidatedData.studentDataTaxReturnIncome = 10002; // Creates 1 eligible dependent. assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; @@ -254,10 +252,9 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-child-car assessmentConsolidatedData.studentDataDaycareCosts11YearsOrUnder = 1000; assessmentConsolidatedData.offeringWeeks = 18; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerCaringForDependant = + assessmentConsolidatedData.partner1PartnerCaringForDependant = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 10000; + assessmentConsolidatedData.partner1TotalIncome = 10000; assessmentConsolidatedData.studentDataTaxReturnIncome = 10002; // Creates 1 eligible dependent. assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; @@ -299,10 +296,9 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-child-car assessmentConsolidatedData.studentDataDaycareCosts11YearsOrUnder = 1000; assessmentConsolidatedData.offeringWeeks = 18; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerCaringForDependant = + assessmentConsolidatedData.partner1PartnerCaringForDependant = YesNoOptions.No; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 10000; + assessmentConsolidatedData.partner1TotalIncome = 10000; assessmentConsolidatedData.studentDataTaxReturnIncome = 10002; // Creates 1 eligible dependent. assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-interface-policy.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-interface-policy.e2e-spec.ts index 7cb99fdb5a..ce80cedb9d 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-interface-policy.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-interface-policy.e2e-spec.ts @@ -33,15 +33,14 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-interface createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataIncomeAssistanceAmount = 1000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; - assessmentConsolidatedData.studentDataPartnerBCEAIncomeAssistanceAmount = 1500; + assessmentConsolidatedData.partner1TotalIncome = 0; + assessmentConsolidatedData.partner1BCEAIncomeAssistanceAmount = 1500; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( @@ -102,15 +101,14 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-interface createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataIncomeAssistanceAmount = 1000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; - assessmentConsolidatedData.studentDataPartnerBCEAIncomeAssistanceAmount = 1000; + assessmentConsolidatedData.partner1TotalIncome = 0; + assessmentConsolidatedData.partner1BCEAIncomeAssistanceAmount = 1000; assessmentConsolidatedData.studentDataGovernmentFundingCosts = 100; // Act diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-living-allowance.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-living-allowance.e2e-spec.ts index d810041cf5..3cc68269bb 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-living-allowance.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-living-allowance.e2e-spec.ts @@ -160,13 +160,13 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-living-al createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( PROGRAM_YEAR, @@ -186,13 +186,13 @@ describe(`E2E Test Workflow full-time-assessment-${PROGRAM_YEAR}-costs-living-al createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.No; assessmentConsolidatedData.studentDataRelationshipStatus = "marriedUnable"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( PROGRAM_YEAR, diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-transportation.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-transportation.e2e-spec.ts index 37f6bee52a..1de902aa7c 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-transportation.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/costs/fulltime-assessment-costs-transportation.e2e-spec.ts @@ -82,15 +82,14 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-costs-transporta assessmentConsolidatedData.studentDataReturnTripHomeCost = 1000; assessmentConsolidatedData.studentDataLivingWithPartner = YesNoOptions.Yes; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataPartnerHasEmploymentInsuranceBenefits = + assessmentConsolidatedData.partner1HasEmploymentInsuranceBenefits = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasTotalIncomeAssistance = + assessmentConsolidatedData.partner1HasTotalIncomeAssistance = YesNoOptions.No; - assessmentConsolidatedData.studentDataPartnerHasFedralProvincialPDReceipt = + assessmentConsolidatedData.partner1HasFedralProvincialPDReceipt = YesNoOptions.No; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 0; + assessmentConsolidatedData.partner1TotalIncome = 0; // Act const calculatedAssessment = await executeFullTimeAssessmentForProgramYear( diff --git a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/family-count/fulltime-assessment-family-size.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/family-count/fulltime-assessment-family-size.e2e-spec.ts index fa286a79da..ad448f8e45 100644 --- a/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/family-count/fulltime-assessment-family-size.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/fulltime-assessment/family-count/fulltime-assessment-family-size.e2e-spec.ts @@ -17,7 +17,6 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentEligible( @@ -47,7 +46,6 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentNotEligible( @@ -79,7 +77,6 @@ describe(`E2E Test Workflow fulltime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedFulltimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentEligible( diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/eligibility/parttime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/eligibility/parttime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts new file mode 100644 index 0000000000..591acbd8fb --- /dev/null +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/eligibility/parttime-assessment-appeal-eligibility-partner-current-year-income.e2e-spec.ts @@ -0,0 +1,86 @@ +import { PROGRAM_YEAR } from "../../../constants/program-year.constants"; +import { + ZeebeMockedClient, + createFakeConsolidatedPartTimeData, + executePartTimeAssessmentForProgramYear, +} from "../../../../test-utils"; + +describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-appeal-eligibility-partner-current-year-income.`, () => { + it("Should evaluate the partner current year income appeal as eligible when the student is married.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.partner1TotalIncome = 100002; + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(true); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student is single.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "single"; + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student relationship status is other.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "other"; + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + it("Should evaluate the partner current year income appeal as not eligible when the student relationship status is unable to report.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "marriedUnable"; + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables + .isEligibleForPartnerCurrentYearIncomeAppeal, + ).toBe(false); + }); + + afterAll(async () => { + // Closes the singleton instance created during test executions. + await ZeebeMockedClient.getMockedZeebeInstance().close(); + }); +}); diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/parttime-assessment-partner-current-year-income.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/parttime-assessment-partner-current-year-income.e2e-spec.ts new file mode 100644 index 0000000000..1a6c5a3274 --- /dev/null +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/appeals/parttime-assessment-partner-current-year-income.e2e-spec.ts @@ -0,0 +1,78 @@ +import { PROGRAM_YEAR } from "../../constants/program-year.constants"; +import { + ZeebeMockedClient, + createFakeConsolidatedPartTimeData, + executePartTimeAssessmentForProgramYear, +} from "../../../test-utils"; + +describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-partner-current-year-income.`, () => { + it("Should use application values when there is no partner current year income appeal and no CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = null; + assessmentConsolidatedData.partner1TotalIncome = 1234; + assessmentConsolidatedData.partner1CRAReportedIncome = null; + + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(1234); + }); + + it("Should use the appeal current year income values when there is a partner current year income appeal and the partner has no CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = { + currentYearIncome: 20001, + }; + assessmentConsolidatedData.partner1TotalIncome = 100002; + assessmentConsolidatedData.partner1CRAReportedIncome = null; + + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(20001); + }); + + it("Should use the appeal current year income values when there is a partner current year income appeal and the partner has CRA reported income.", async () => { + // Arrange + const assessmentConsolidatedData = + createFakeConsolidatedPartTimeData(PROGRAM_YEAR); + assessmentConsolidatedData.studentDataRelationshipStatus = "married"; + assessmentConsolidatedData.appealsPartnerCurrentYearIncomeAppealData = { + currentYearIncome: 20001, + }; + assessmentConsolidatedData.partner1CRAReportedIncome = 1000001; + assessmentConsolidatedData.partner1TotalIncome = 100002; + // Act + const calculatedAssessment = await executePartTimeAssessmentForProgramYear( + PROGRAM_YEAR, + assessmentConsolidatedData, + ); + // Assert + expect( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome, + ).toBe(20001); + }); + + afterAll(async () => { + // Closes the singleton instance created during test executions. + await ZeebeMockedClient.getMockedZeebeInstance().close(); + }); +}); diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-BCAG.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-BCAG.e2e-spec.ts index aaf6c16c54..6d01a732bd 100644 --- a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-BCAG.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-BCAG.e2e-spec.ts @@ -13,7 +13,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-BC createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Act const calculatedAssessment = await executePartTimeAssessmentForProgramYear( @@ -47,7 +46,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-BC createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 33999; // Act const calculatedAssessment = await executePartTimeAssessmentForProgramYear( @@ -88,7 +86,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-BC createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Public institution assessmentConsolidatedData.institutionType = InstitutionTypes.BCPublic; @@ -134,7 +131,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-BC createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Public institution assessmentConsolidatedData.institutionType = InstitutionTypes.BCPublic; @@ -163,7 +159,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-BC createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Public institution assessmentConsolidatedData.institutionType = InstitutionTypes.BCPublic; diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSGD.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSGD.e2e-spec.ts index 943df012c9..79a6c5defd 100644 --- a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSGD.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSGD.e2e-spec.ts @@ -18,7 +18,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 20000; assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; assessmentConsolidatedData.studentDataDependants = [ @@ -64,7 +63,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 52000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 42000; assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; assessmentConsolidatedData.studentDataDependants = [ @@ -146,7 +144,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 20000; assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; assessmentConsolidatedData.studentDataDependants = [ @@ -190,7 +187,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 40000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 40000; assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; assessmentConsolidatedData.studentDataDependants = [ @@ -263,7 +259,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 35000; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 35000; assessmentConsolidatedData.studentDataHasDependents = YesNoOptions.Yes; assessmentConsolidatedData.studentDataDependants = [ diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSPT.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSPT.e2e-spec.ts index 9d287f3d0c..c4d0be163f 100644 --- a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSPT.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/awards-amounts/parttime-assessment-awards-amount-CSPT.e2e-spec.ts @@ -12,7 +12,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Act const calculatedAssessment = await executePartTimeAssessmentForProgramYear( @@ -42,7 +41,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 33999; // Act const calculatedAssessment = await executePartTimeAssessmentForProgramYear( @@ -70,7 +68,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; // Act const calculatedAssessment = await executePartTimeAssessmentForProgramYear( @@ -107,7 +104,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 20001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.programYearTotalPartTimeCSPT = undefined; // Act @@ -129,7 +125,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-awards-amount-CS createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataCRAReportedIncome = 60001; assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.programYearTotalPartTimeCSPT = 795; // Act diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/costs/parttime-assessment-total-partner-income.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/costs/parttime-assessment-total-partner-income.e2e-spec.ts index d6746180d6..efc61a8d9c 100644 --- a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/costs/parttime-assessment-total-partner-income.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/costs/parttime-assessment-total-partner-income.e2e-spec.ts @@ -6,12 +6,11 @@ import { } from "../../../test-utils"; describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-total-partner-income.`, () => { - it("Should calculate total partner income as the CRA verified income value when the student is married and the partner is able to report their financial information.", async () => { + it("Should calculate total partner income as the CRA verified income value when the student is married and the partner had CRA verified income.", async () => { // Arrange const assessmentConsolidatedData = createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 30000; // Act @@ -24,47 +23,21 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-total-partner-in expect( calculatedAssessment.variables.calculatedDataPartner1TotalIncome, ).toBe(30000); - // As the student did not report the current year partner income, it must be undefined. - expect( - calculatedAssessment.variables.studentDataCurrentYearPartnerIncome, - ).toBe(undefined); + expect(calculatedAssessment.variables.calculatedDataTotalFamilyIncome).toBe( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome + + calculatedAssessment.variables.calculatedDataStudentTotalIncome, + ); }); it( - "Should calculate total partner income as self reported partner's current year income when the student is married and need to self report the partner financial information" + - " as their partner's current year income needs to be reported.", - async () => { - // Arrange - const assessmentConsolidatedData = - createFakeConsolidatedPartTimeData(PROGRAM_YEAR); - assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataCurrentYearPartnerIncome = 10000; - - // Act - const calculatedAssessment = - await executePartTimeAssessmentForProgramYear( - PROGRAM_YEAR, - assessmentConsolidatedData, - ); - // Assert - // Calculated total partner income must be 10000 based on current year income being the top priority for income. - expect( - calculatedAssessment.variables.calculatedDataPartner1TotalIncome, - ).toBe(10000); - }, - ); - - it( - "Should calculate total partner income as self reported partner's tax return income when the student is married and need to self report the partner financial information" + - " as their partner is not eligible for BC Services Card.", + "Should calculate total partner income as self reported partner's tax return income when the student is married and" + + " their partner did not have CRA verified income.", async () => { // Arrange const assessmentConsolidatedData = createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = false; - assessmentConsolidatedData.studentDataEstimatedSpouseIncome = 15000; + assessmentConsolidatedData.partner1TotalIncome = 15000; // No income verification happened as student self reported partner's tax return income. assessmentConsolidatedData.partner1CRAReportedIncome = null; @@ -79,10 +52,12 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-total-partner-in expect( calculatedAssessment.variables.calculatedDataPartner1TotalIncome, ).toBe(15000); - // As the student did not report the current year partner income, it must be undefined. expect( - calculatedAssessment.variables.studentDataCurrentYearPartnerIncome, - ).toBe(undefined); + calculatedAssessment.variables.calculatedDataTotalFamilyIncome, + ).toBe( + calculatedAssessment.variables.calculatedDataPartner1TotalIncome + + calculatedAssessment.variables.calculatedDataStudentTotalIncome, + ); }, ); diff --git a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/family-count/parttime-assessment-family-size.e2e-spec.ts b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/family-count/parttime-assessment-family-size.e2e-spec.ts index ac517381ff..f6daad8897 100644 --- a/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/family-count/parttime-assessment-family-size.e2e-spec.ts +++ b/sources/packages/backend/workflow/test/2026-2027/parttime-assessment/family-count/parttime-assessment-family-size.e2e-spec.ts @@ -17,7 +17,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentEligible( @@ -48,7 +47,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentNotEligible( @@ -81,7 +79,6 @@ describe(`E2E Test Workflow parttime-assessment-${PROGRAM_YEAR}-family-size.`, ( const assessmentConsolidatedData = createFakeConsolidatedPartTimeData(PROGRAM_YEAR); assessmentConsolidatedData.studentDataRelationshipStatus = "married"; - assessmentConsolidatedData.studentDataIsYourPartnerAbleToReport = true; assessmentConsolidatedData.partner1CRAReportedIncome = 22999; assessmentConsolidatedData.studentDataDependants = [ createFakeStudentDependentEligible( diff --git a/sources/packages/backend/workflow/test/models/assessment.model.ts b/sources/packages/backend/workflow/test/models/assessment.model.ts index 553a7d483b..543e31deda 100644 --- a/sources/packages/backend/workflow/test/models/assessment.model.ts +++ b/sources/packages/backend/workflow/test/models/assessment.model.ts @@ -143,10 +143,10 @@ export interface AssessmentConsolidatedData extends JSONDoc { appealsPartnerCurrentYearIncomeAppealData?: JSONDoc; appealsParentCurrentYearIncomeAppealData?: JSONDoc; appealsStudentExceptionalExpenseAppealData?: JSONDoc; - studentDataIsYourPartnerAbleToReport?: boolean; + studentDataIsYourPartnerAbleToReport?: boolean; // No longer used in PY 26/27 and beyond. studentDataParentValidSinNumber?: YesNoOptions; studentDataNumberOfParents?: 1 | 2; - studentDataEstimatedSpouseIncome?: number; + studentDataEstimatedSpouseIncome?: number; // No longer used in PY 26/27 and beyond. studentDataCurrentYearPartnerIncome?: number; // No longer used in PY 26/27 and beyond. studentDataLivingWithPartner?: YesNoOptions; studentDataCRAReportedIncome?: number; @@ -154,12 +154,12 @@ export interface AssessmentConsolidatedData extends JSONDoc { studentDataGovernmentFundingCosts?: number; studentDataNonGovernmentFundingCosts?: number; studentDataParentVoluntaryContributionsCosts?: number; - studentDataPartnerStudyWeeks?: number; - studentDataPartnerEmploymentInsurance?: YesNoOptions; - studentDataPartnerFedralProvincialPDReceiptCost?: number; - studentDataPartnerChildSupportCosts?: number; - studentDataPartnerCaringForDependant?: YesNoOptions; - studentDataPartnerTotalIncomeAssistance?: number; + studentDataPartnerStudyWeeks?: number; // No longer used in PY 26/27 and beyond. + studentDataPartnerEmploymentInsurance?: YesNoOptions; // No longer used in PY 26/27 and beyond. + studentDataPartnerFedralProvincialPDReceiptCost?: number; // No longer used in PY 26/27 and beyond. + studentDataPartnerChildSupportCosts?: number; // No longer used in PY 26/27 and beyond. + studentDataPartnerCaringForDependant?: YesNoOptions; // No longer used in PY 26/27 and beyond. + studentDataPartnerTotalIncomeAssistance?: number; // No longer used in PY 26/27 and beyond. studentDataVoluntaryContributions?: number; studentDataScholarshipAmount?: number; studentDataStudentParentsTotalIncome?: number; @@ -174,7 +174,7 @@ export interface AssessmentConsolidatedData extends JSONDoc { parent1SupportingUserId?: number; parent1Contributions?: number; parent1Ei?: number; - parent1NetAssests?: number; + parent1NetAssets?: number; parent1Tax?: number; parent1TotalIncome?: number; parent1DependentTable?: StudentDependent[]; @@ -186,7 +186,7 @@ export interface AssessmentConsolidatedData extends JSONDoc { parent2CppSelfemploymentOther?: number; parent2DependentTable?: StudentDependent[]; parent2Ei?: number; - parent2NetAssests?: number; + parent2NetAssets?: number; parent2Tax?: number; parent2TotalIncome?: number; parent2CRAReportedIncome?: number; @@ -219,10 +219,10 @@ export interface AssessmentConsolidatedData extends JSONDoc { applicationStatus: string; applicationEditStatus: ApplicationEditStatus; applicationHasNOAApproval: boolean; - studentDataPartnerHasEmploymentInsuranceBenefits?: YesNoOptions; - studentDataPartnerHasFedralProvincialPDReceipt?: YesNoOptions; - studentDataPartnerHasTotalIncomeAssistance?: YesNoOptions; - studentDataPartnerBCEAIncomeAssistanceAmount?: number; + studentDataPartnerHasEmploymentInsuranceBenefits?: YesNoOptions; // No longer used in PY 26/27 and beyond. + studentDataPartnerHasFedralProvincialPDReceipt?: YesNoOptions; // No longer used in PY 26/27 and beyond. + studentDataPartnerHasTotalIncomeAssistance?: YesNoOptions; // No longer used in PY 26/27 and beyond. + studentDataPartnerBCEAIncomeAssistanceAmount?: number; // No longer used in PY 26/27 and beyond. studentDataPartnerIsAbleToReport?: YesNoOptions; partner1HasEmploymentInsuranceBenefits?: YesNoOptions; partner1HasFedralProvincialPDReceipt?: YesNoOptions; @@ -408,6 +408,9 @@ export interface CalculatedAssessmentModel { dmnFullTimeLivingCategory: string; isEligibleForRoomAndBoardAppeal?: boolean; isEligibleForStepParentWaiverAppeal?: boolean; + isEligibleForStudentCurrentYearIncomeAppeal?: boolean; + isEligibleForPartnerCurrentYearIncomeAppeal?: boolean; + isEligibleForParentCurrentYearIncomeAppeal?: boolean; calculatedDataWaivedParent?: number; // Common variables used in both full-time and part-time. // CSGP diff --git a/sources/packages/backend/workflow/test/test-utils/factories/assessment-consolidated-data.ts b/sources/packages/backend/workflow/test/test-utils/factories/assessment-consolidated-data.ts index 9bf61b528f..669b1b1257 100644 --- a/sources/packages/backend/workflow/test/test-utils/factories/assessment-consolidated-data.ts +++ b/sources/packages/backend/workflow/test/test-utils/factories/assessment-consolidated-data.ts @@ -109,33 +109,33 @@ export function createFakePartTimeAssessmentConsolidatedData( */ function getDefaultAssessmentConsolidatedData(): AssessmentConsolidatedData { return { - appealsStudentIncomeAppealData: null, - appealsPartnerIncomeAppealData: null, - appealsStudentDisabilityAppealData: null, - appealsStudentAdditionalTransportationAppealData: null, - appealsPartnerInformationAndIncomeAppealData: null, - appealsStudentFinancialInformationAppealData: null, - appealsStudentHasDependentsAppealData: null, - appealsStudentDependantsAppealData: null, + appealsStudentIncomeAppealData: null, // No longer used in PY 26/27 and beyond. + appealsPartnerIncomeAppealData: null, // No longer used in PY 26/27 and beyond. + appealsStudentDisabilityAppealData: null, // No longer used in PY 26/27 and beyond. + appealsStudentAdditionalTransportationAppealData: null, // No longer used in PY 26/27 and beyond. + appealsPartnerInformationAndIncomeAppealData: null, // No longer used in PY 26/27 and beyond. + appealsStudentFinancialInformationAppealData: null, // No longer used in PY 26/27 and beyond. + appealsStudentHasDependentsAppealData: null, // No longer used in PY 26/27 and beyond. + appealsStudentDependantsAppealData: null, // No longer used in PY 26/27 and beyond. appealsRoomAndBoardCostsAppealData: null, appealsStepParentWaiverAppealData: null, - studentDataIsYourPartnerAbleToReport: null, + studentDataIsYourPartnerAbleToReport: null, // No longer used in PY 26/27 and beyond. studentDataParentValidSinNumber: null, studentDataNumberOfParents: null, - studentDataEstimatedSpouseIncome: null, + studentDataEstimatedSpouseIncome: null, // No longer used in PY 26/27 and beyond. studentDataLivingWithPartner: null, studentDataCRAReportedIncome: null, studentDataDependants: null, studentDataGovernmentFundingCosts: null, studentDataNonGovernmentFundingCosts: null, studentDataParentVoluntaryContributionsCosts: null, - studentDataPartnerStudyWeeks: null, - studentDataPartnerEmploymentInsurance: null, - studentDataPartnerFedralProvincialPDReceiptCost: null, - studentDataPartnerChildSupportCosts: null, - studentDataPartnerBCEAIncomeAssistanceAmount: null, - studentDataPartnerCaringForDependant: null, - studentDataPartnerTotalIncomeAssistance: null, + studentDataPartnerStudyWeeks: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerEmploymentInsurance: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerFedralProvincialPDReceiptCost: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerChildSupportCosts: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerBCEAIncomeAssistanceAmount: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerCaringForDependant: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerTotalIncomeAssistance: null, // No longer used in PY 26/27 and beyond. studentDataVoluntaryContributions: null, studentDataScholarshipAmount: null, studentDataChildSupportAndOrSpousalSupport: null, @@ -151,7 +151,7 @@ function getDefaultAssessmentConsolidatedData(): AssessmentConsolidatedData { offeringCourseLoad: null, parent1Contributions: null, parent1Ei: null, - parent1NetAssests: null, + parent1NetAssets: null, parent1Tax: null, parent1TotalIncome: null, parent1DependentTable: [], @@ -162,7 +162,7 @@ function getDefaultAssessmentConsolidatedData(): AssessmentConsolidatedData { parent2CppSelfemploymentOther: null, parent2DependentTable: [], parent2Ei: null, - parent2NetAssests: null, + parent2NetAssets: null, parent2Tax: null, parent2TotalIncome: null, parent2CRAReportedIncome: null, @@ -179,9 +179,9 @@ function getDefaultAssessmentConsolidatedData(): AssessmentConsolidatedData { applicationStatus: null, applicationEditStatus: null, applicationHasNOAApproval: null, - studentDataPartnerHasEmploymentInsuranceBenefits: null, - studentDataPartnerHasFedralProvincialPDReceipt: null, - studentDataPartnerHasTotalIncomeAssistance: null, + studentDataPartnerHasEmploymentInsuranceBenefits: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerHasFedralProvincialPDReceipt: null, // No longer used in PY 26/27 and beyond. + studentDataPartnerHasTotalIncomeAssistance: null, // No longer used in PY 26/27 and beyond. partner1HasEmploymentInsuranceBenefits: null, partner1HasFedralProvincialPDReceipt: null, partner1HasTotalIncomeAssistance: null,