From 088c3576482e9e1bdcafa478488644a2916183e5 Mon Sep 17 00:00:00 2001 From: Spencer Peace <47868304+Spencer6497@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:27:39 +0200 Subject: [PATCH] fix(array done functions pt. 2) (#1320) * make geldanlage partial * add geldanlageDone function and utilize, add unit tests * make grundeigentum partial * add singleGrundeigentumDone function, utilize and add unit tests * add PKH-specific kraftfahrzeugDone function and test * check for kfz wert in kfz array done function --------- Co-authored-by: Eric Klemm --- .../finanzielleAngaben/doneFunctions.ts | 15 +- .../__test__/doneFunctions.test.ts | 92 +++++++++ .../finanzielleAngaben/doneFunctions.ts | 26 ++- .../__test__/doneFunctions.test.ts | 176 +++++++++++++++++- .../shared/finanzielleAngaben/context.ts | 100 +++++----- .../finanzielleAngaben/doneFunctions.ts | 46 ++++- .../sections/F_besitz/F_besitz.ts | 10 +- .../sections/F_besitz/fillVermoegenswerte.ts | 14 +- .../prozesskostenhilfeFormularData.ts | 8 +- 9 files changed, 417 insertions(+), 70 deletions(-) diff --git a/app/flows/beratungshilfeFormular/finanzielleAngaben/doneFunctions.ts b/app/flows/beratungshilfeFormular/finanzielleAngaben/doneFunctions.ts index 7ab7c0dfb..95726e4ba 100644 --- a/app/flows/beratungshilfeFormular/finanzielleAngaben/doneFunctions.ts +++ b/app/flows/beratungshilfeFormular/finanzielleAngaben/doneFunctions.ts @@ -1,8 +1,12 @@ +import type { BeratungshilfeFinanzielleAngabenGuard } from "~/flows/beratungshilfeFormular/finanzielleAngaben/BeratungshilfeFinanzielleAngabenGuardType"; import type { BeratungshilfeFinanzielleAngaben } from "~/flows/beratungshilfeFormular/finanzielleAngaben/context"; -import { childDone } from "~/flows/shared/finanzielleAngaben/doneFunctions"; +import { + childDone, + geldanlageDone, + singleGrundeigentumDone, +} from "~/flows/shared/finanzielleAngaben/doneFunctions"; import { hasAnyEigentumExceptBankaccount } from "~/flows/shared/finanzielleAngaben/guards"; import { arrayIsNonEmpty } from "~/util/array"; -import { type BeratungshilfeFinanzielleAngabenGuard } from "./BeratungshilfeFinanzielleAngabenGuardType"; export const hasStaatlicheLeistungen: BeratungshilfeFinanzielleAngabenGuard = ({ context, @@ -99,7 +103,9 @@ export const geldanlagenDone: BeratungshilfeFinanzielleAngabenGuard = ({ }) => context.eigentumTotalWorth === "less10000" || context.hasGeldanlage === "no" || - (context.hasGeldanlage === "yes" && arrayIsNonEmpty(context.geldanlagen)); + (context.hasGeldanlage === "yes" && + arrayIsNonEmpty(context.geldanlagen) && + context.geldanlagen.every(geldanlageDone)); export const grundeigentumDone: BeratungshilfeFinanzielleAngabenGuard = ({ context, @@ -107,7 +113,8 @@ export const grundeigentumDone: BeratungshilfeFinanzielleAngabenGuard = ({ context.eigentumTotalWorth === "less10000" || context.hasGrundeigentum === "no" || (context.hasGrundeigentum === "yes" && - arrayIsNonEmpty(context.grundeigentum)); + arrayIsNonEmpty(context.grundeigentum) && + context.grundeigentum.every(singleGrundeigentumDone)); const kraftfahrzeugDone = ( kraftfahrzeug: NonNullable< diff --git a/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/__test__/doneFunctions.test.ts b/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/__test__/doneFunctions.test.ts index 20d6bd88e..8858f0165 100644 --- a/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/__test__/doneFunctions.test.ts +++ b/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/__test__/doneFunctions.test.ts @@ -4,6 +4,7 @@ import { hasSonstigeAusgabeDone, hasVersicherungDone, kinderDone, + kraftfahrzeugDone, partnerBesondersAusgabenDone, partnerDone, partnerSupportDone, @@ -11,6 +12,7 @@ import { sonstigeAusgabeDone, versicherungDone, } from "~/flows/prozesskostenhilfeFormular/finanzielleAngaben/doneFunctions"; +import { kraftfahrzeugWert } from "~/flows/shared/finanzielleAngaben/context"; const mockedCompleteRatenzahlung: NonNullable< ProzesskostenhilfeFinanzielleAngabenContext["ratenzahlungen"] @@ -32,6 +34,18 @@ const mockedCompleteSonstigeAusgabe: NonNullable< betragGesamt: "50", }; +const mockedCompleteKraftfahrzeug: NonNullable< + ProzesskostenhilfeFinanzielleAngabenContext["kraftfahrzeuge"] +>[0] = { + hasArbeitsweg: "yes", + wert: "over10000", + eigentuemer: "myself", + art: "kraftfahrzeug", + marke: "Mercedes", + kilometerstand: 200000, + baujahr: "1990", +}; + describe("Finanzielle Angaben doneFunctions", () => { describe("partnerDone", () => { it("should return true if the user receives grundsicherung or asylbewerberleistungen", () => { @@ -176,6 +190,84 @@ describe("Finanzielle Angaben doneFunctions", () => { }); }); + describe("kraftfahrzeugDone", () => { + it("should return false if the kraftfahrzeug is missing any information and worth more than 10000", () => { + [kraftfahrzeugWert.Enum.over10000, kraftfahrzeugWert.Enum.unsure].forEach( + (v) => { + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + hasArbeitsweg: undefined, + }), + ).toBe(false); + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + eigentuemer: undefined, + }), + ).toBe(false); + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + art: undefined, + }), + ).toBe(false); + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + marke: undefined, + }), + ).toBe(false); + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + kilometerstand: undefined, + }), + ).toBe(false); + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: v, + baujahr: undefined, + }), + ).toBe(false); + }, + ); + }); + + it("should return true if the kraftfahrzeug is worth less than 10000 and detailed car information is missing", () => { + expect( + kraftfahrzeugDone({ + ...mockedCompleteKraftfahrzeug, + wert: "under10000", + eigentuemer: undefined, + art: undefined, + marke: undefined, + kilometerstand: undefined, + baujahr: undefined, + }), + ).toBeTruthy(); + }); + + it("should return false if the kraftfahrzeug is missing wert and arbeitsweg information", () => { + expect( + kraftfahrzeugDone({ + hasArbeitsweg: undefined, + wert: undefined, + }), + ).toBe(false); + }); + + it("should return true if a kraftfahrzeug is complete", () => { + expect(kraftfahrzeugDone(mockedCompleteKraftfahrzeug)).toBe(true); + }); + }); + describe("versicherungDone", () => { it("should return false if the user has indicated a sonstige versicherung but hasn't named it", () => { expect(versicherungDone({ beitrag: "100", art: "sonstige" })).toBe(false); diff --git a/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/doneFunctions.ts b/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/doneFunctions.ts index 7bbd6d36d..2607ec429 100644 --- a/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/doneFunctions.ts +++ b/app/flows/prozesskostenhilfeFormular/finanzielleAngaben/doneFunctions.ts @@ -14,6 +14,8 @@ import type { GenericGuard } from "../../guards.server"; import { bankKontoDone, childDone, + geldanlageDone, + singleGrundeigentumDone, } from "../../shared/finanzielleAngaben/doneFunctions"; export type ProzesskostenhilfeFinanzielleAngabenGuard = @@ -80,21 +82,39 @@ export const geldanlagenDone: ProzesskostenhilfeFinanzielleAngabenGuard = ({ context, }) => context.hasGeldanlage === "no" || - (context.hasGeldanlage === "yes" && arrayIsNonEmpty(context.geldanlagen)); + (context.hasGeldanlage === "yes" && + arrayIsNonEmpty(context.geldanlagen) && + context.geldanlagen.every(geldanlageDone)); export const grundeigentumDone: ProzesskostenhilfeFinanzielleAngabenGuard = ({ context, }) => context.hasGrundeigentum === "no" || (context.hasGrundeigentum === "yes" && - arrayIsNonEmpty(context.grundeigentum)); + arrayIsNonEmpty(context.grundeigentum) && + context.grundeigentum.every(singleGrundeigentumDone)); + +export const kraftfahrzeugDone = ( + kfz: NonNullable< + ProzesskostenhilfeFinanzielleAngabenContext["kraftfahrzeuge"] + >[0], +) => + kfz.hasArbeitsweg !== undefined && + kfz.wert !== undefined && + (kfz.wert === "under10000" || + (kfz.eigentuemer !== undefined && + kfz.art !== undefined && + kfz.marke !== undefined && + kfz.kilometerstand !== undefined && + kfz.baujahr !== undefined)); export const kraftfahrzeugeDone: ProzesskostenhilfeFinanzielleAngabenGuard = ({ context, }) => context.hasKraftfahrzeug === "no" || (context.hasKraftfahrzeug === "yes" && - arrayIsNonEmpty(context.kraftfahrzeuge)); + arrayIsNonEmpty(context.kraftfahrzeuge) && + context.kraftfahrzeuge.every(kraftfahrzeugDone)); export const wertsachenDone: ProzesskostenhilfeFinanzielleAngabenGuard = ({ context, diff --git a/app/flows/shared/finanzielleAngaben/__test__/doneFunctions.test.ts b/app/flows/shared/finanzielleAngaben/__test__/doneFunctions.test.ts index aedd31c6c..e64650446 100644 --- a/app/flows/shared/finanzielleAngaben/__test__/doneFunctions.test.ts +++ b/app/flows/shared/finanzielleAngaben/__test__/doneFunctions.test.ts @@ -1,8 +1,15 @@ -import type { z } from "zod"; -import type { kinderArraySchema } from "~/flows/shared/finanzielleAngaben/context"; -import { childDone } from "~/flows/shared/finanzielleAngaben/doneFunctions"; +import type { + GeldanlagenArraySchema, + GrundeigentumArraySchema, + KinderArraySchema, +} from "~/flows/shared/finanzielleAngaben/context"; +import { + childDone, + geldanlageDone, + singleGrundeigentumDone, +} from "~/flows/shared/finanzielleAngaben/doneFunctions"; -const mockCompletedChild: z.infer[0] = { +const mockCompletedChild: KinderArraySchema[0] = { vorname: "Child", nachname: "Childson", geburtsdatum: "01.01.2020", @@ -13,6 +20,24 @@ const mockCompletedChild: z.infer[0] = { unterhaltsSumme: "100", }; +const mockCompletedAnlage: GeldanlagenArraySchema[0] = { + art: "bargeld", + eigentuemer: "partner", + wert: "100", +}; + +const mockCompletedGrundeigentum: GrundeigentumArraySchema[0] = { + art: "erbbaurecht", + isBewohnt: "family", + eigentuemer: "partner", + flaeche: "100", + verkaufswert: "100000", + strassehausnummer: "Strasse 39", + plz: "10629", + ort: "Berlin", + land: "Deutschland", +}; + describe("shared finanielle angaben doneFunctions", () => { describe("childDone", () => { it("should return false if the name and birth date are missing", () => { @@ -87,4 +112,147 @@ describe("shared finanielle angaben doneFunctions", () => { ).toBe(true); }); }); + + describe("geldanlageDone", () => { + it("should return false if the type is missing", () => { + expect(geldanlageDone({ ...mockCompletedAnlage, art: undefined })).toBe( + false, + ); + }); + + it("should return false if the eigentumer is missing", () => { + expect( + geldanlageDone({ ...mockCompletedAnlage, eigentuemer: undefined }), + ).toBe(false); + }); + + it("should return false if the wert is missing", () => { + expect(geldanlageDone({ ...mockCompletedAnlage, wert: undefined })).toBe( + false, + ); + }); + + it("should return false if it's a bank account and lacks a name", () => { + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "giroTagesgeldSparkonto", + kontoBankName: undefined, + }), + ).toBe(false); + }); + + it("should return false if it's befristet and lacks a type, description or date", () => { + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "befristet", + befristetArt: undefined, + }), + ).toBe(false); + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "befristet", + verwendungszweck: undefined, + }), + ).toBe(false); + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "befristet", + auszahlungdatum: undefined, + }), + ).toBe(false); + }); + + it("should return false if it's support and lacks a description", () => { + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "forderung", + forderung: undefined, + }), + ).toBe(false); + }); + + it("should return false if it's sonstiges and lacks a description", () => { + expect( + geldanlageDone({ + ...mockCompletedAnlage, + art: "sonstiges", + verwendungszweck: undefined, + }), + ).toBe(false); + }); + + it("should return true if the user entered a completed geldanlage", () => { + expect(geldanlageDone(mockCompletedAnlage)).toBe(true); + }); + }); + + describe("singleGrundeigentumDone", () => { + it("should return false if the type is missing", () => { + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + art: undefined, + }), + ).toBe(false); + }); + it("should return false if the eigentumer is missing", () => { + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + eigentuemer: undefined, + }), + ).toBe(false); + }); + it("should return false if the area is missing", () => { + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + flaeche: undefined, + }), + ).toBe(false); + }); + it("should return false if the worth is missing", () => { + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + verkaufswert: undefined, + }), + ).toBe(false); + }); + it("should return false if the user doesn't personally live in the property and the location is missing", () => { + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + strassehausnummer: undefined, + }), + ).toBe(false); + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + plz: undefined, + }), + ).toBe(false); + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + ort: undefined, + }), + ).toBe(false); + expect( + singleGrundeigentumDone({ + ...mockCompletedGrundeigentum, + land: undefined, + }), + ).toBe(false); + }); + + it("should return true if the user entered a completed singleGrundeigentum", () => { + expect(singleGrundeigentumDone(mockCompletedGrundeigentum)).toBe(true); + }); + }); }); diff --git a/app/flows/shared/finanzielleAngaben/context.ts b/app/flows/shared/finanzielleAngaben/context.ts index c73600e4d..a6f08bc92 100644 --- a/app/flows/shared/finanzielleAngaben/context.ts +++ b/app/flows/shared/finanzielleAngaben/context.ts @@ -81,6 +81,11 @@ export const financialEntrySchema = z.object({ export type FinancialEntry = z.infer; +export const kraftfahrzeugWert = z.enum( + ["under10000", "over10000", "unsure"], + customRequiredErrorMessage, +); + export const kraftfahrzeugeArraySchema = z.array( z .object({ @@ -96,60 +101,65 @@ export const kraftfahrzeugeArraySchema = z.array( baujahr: createYearSchema({ latest: () => today().getFullYear() }), bemerkung: stringRequiredSchema, hasArbeitsweg: YesNoAnswer, - wert: z.enum( - ["under10000", "over10000", "unsure"], - customRequiredErrorMessage, - ), + wert: kraftfahrzeugWert, }) .partial(), ); -export const gelanlagenArraySchema = z.array( - z.object({ - art: z.enum( - [ - "bargeld", - "wertpapiere", - "guthabenkontoKrypto", - "giroTagesgeldSparkonto", - "befristet", - "forderung", - "sonstiges", - ], - customRequiredErrorMessage, - ), - eigentuemer: Eigentuemer, - wert: buildMoneyValidationSchema(), - - kontoBankName: stringOptionalSchema, - kontoIban: stringOptionalSchema, - kontoBezeichnung: stringOptionalSchema, +export type GeldanlagenArraySchema = z.infer; - befristetArt: z - .enum( - ["lifeInsurance", "buildingSavingsContract", "fixedDepositAccount"], +export const gelanlagenArraySchema = z.array( + z + .object({ + art: z.enum( + [ + "bargeld", + "wertpapiere", + "guthabenkontoKrypto", + "giroTagesgeldSparkonto", + "befristet", + "forderung", + "sonstiges", + ], customRequiredErrorMessage, - ) - .optional(), - - forderung: stringOptionalSchema, - verwendungszweck: stringOptionalSchema, - auszahlungdatum: stringOptionalSchema, - }), + ), + eigentuemer: Eigentuemer, + wert: buildMoneyValidationSchema(), + + kontoBankName: stringOptionalSchema, + kontoIban: stringOptionalSchema, + kontoBezeichnung: stringOptionalSchema, + + befristetArt: z + .enum( + ["lifeInsurance", "buildingSavingsContract", "fixedDepositAccount"], + customRequiredErrorMessage, + ) + .optional(), + + forderung: stringOptionalSchema, + verwendungszweck: stringOptionalSchema, + auszahlungdatum: stringOptionalSchema, + }) + .partial(), ); +export type GrundeigentumArraySchema = z.infer; + export const grundeigentumArraySchema = z.array( - z.object({ - isBewohnt: z.enum(["yes", "family", "no"], customRequiredErrorMessage), - art: GrundeigentumArt, - eigentuemer: Eigentuemer, - flaeche: stringRequiredSchema, - verkaufswert: buildMoneyValidationSchema(), - strassehausnummer: stringRequiredSchema, - plz: stringOptionalSchema, - ort: stringRequiredSchema, - land: stringRequiredSchema, - }), + z + .object({ + isBewohnt: z.enum(["yes", "family", "no"], customRequiredErrorMessage), + art: GrundeigentumArt, + eigentuemer: Eigentuemer, + flaeche: stringRequiredSchema, + verkaufswert: buildMoneyValidationSchema(), + strassehausnummer: stringRequiredSchema, + plz: stringOptionalSchema, + ort: stringRequiredSchema, + land: stringRequiredSchema, + }) + .partial(), ); export const wertsachenArraySchema = z.array( diff --git a/app/flows/shared/finanzielleAngaben/doneFunctions.ts b/app/flows/shared/finanzielleAngaben/doneFunctions.ts index 8c30e111e..69d60a6dc 100644 --- a/app/flows/shared/finanzielleAngaben/doneFunctions.ts +++ b/app/flows/shared/finanzielleAngaben/doneFunctions.ts @@ -1,6 +1,10 @@ -import type { KinderArraySchema } from "~/flows/shared/finanzielleAngaben/context"; +import type { + GeldanlagenArraySchema, + GrundeigentumArraySchema, + KinderArraySchema, +} from "~/flows/shared/finanzielleAngaben/context"; +import type { FinanzielleAngabenGuard } from "~/flows/shared/finanzielleAngaben/guards"; import { arrayIsNonEmpty } from "~/util/array"; -import type { FinanzielleAngabenGuard } from "./guards"; export const bankKontoDone: FinanzielleAngabenGuard = ({ context }) => context.hasBankkonto === "no" || @@ -27,3 +31,41 @@ const childWohnortDone = (child: KinderArraySchema[0]) => { (child.unterhalt === "yes" && child.unterhaltsSumme !== undefined) ); }; + +export const geldanlageDone = (geldanlage: GeldanlagenArraySchema[0]) => { + if ( + geldanlage.art === undefined || + geldanlage.eigentuemer === undefined || + geldanlage.wert === undefined + ) { + return false; + } + switch (geldanlage.art) { + case "giroTagesgeldSparkonto": + return geldanlage.kontoBankName !== undefined; + case "befristet": + return ( + geldanlage.befristetArt !== undefined && + geldanlage.verwendungszweck !== undefined && + geldanlage.auszahlungdatum !== undefined + ); + case "forderung": + return geldanlage.forderung !== undefined; + case "sonstiges": + return geldanlage.verwendungszweck !== undefined; + } + return true; +}; + +export const singleGrundeigentumDone = ( + grundeigentum: GrundeigentumArraySchema[0], +) => + grundeigentum.art !== undefined && + grundeigentum.eigentuemer !== undefined && + grundeigentum.flaeche !== undefined && + grundeigentum.verkaufswert !== undefined && + (grundeigentum.isBewohnt === "yes" || + (grundeigentum.strassehausnummer !== undefined && + grundeigentum.plz !== undefined && + grundeigentum.ort !== undefined && + grundeigentum.land !== undefined)); diff --git a/app/services/pdf/beratungshilfe/sections/F_besitz/F_besitz.ts b/app/services/pdf/beratungshilfe/sections/F_besitz/F_besitz.ts index 09d5ce254..9e5b07e5e 100644 --- a/app/services/pdf/beratungshilfe/sections/F_besitz/F_besitz.ts +++ b/app/services/pdf/beratungshilfe/sections/F_besitz/F_besitz.ts @@ -125,7 +125,7 @@ export const fillFinancialGrundeigentum: BerHPdfFillFunction = ({ pdfValues.f6EigentuemerC.value = grundeigentum.eigentuemer == "myselfAndPartner"; - pdfValues.f7Nutzungsart.value = `Art: ${grundeigentumArtMapping[grundeigentum.art]}`; + pdfValues.f7Nutzungsart.value = `Art: ${grundeigentum.art ? grundeigentumArtMapping[grundeigentum.art] : ""}`; if (grundeigentum.isBewohnt === "yes") pdfValues.f7Nutzungsart.value += ", Eigennutzung"; else if (grundeigentum.isBewohnt === "family") @@ -152,11 +152,15 @@ export const fillFinancialGrundeigentum: BerHPdfFillFunction = ({ { title: `Grundeigentum ${index + 1}`, level: "h4" }, { title: "Art", - text: grundeigentumArtMapping[grundeigentum.art], + text: grundeigentum.art + ? grundeigentumArtMapping[grundeigentum.art] + : "", }, { title: "Eigentümer:in", - text: eigentuemerMapping[grundeigentum.eigentuemer], + text: grundeigentum.eigentuemer + ? eigentuemerMapping[grundeigentum.eigentuemer] + : "", }, { title: "Fläche", text: grundeigentum.flaeche + " m²" }, { title: "Verkehrswert", text: grundeigentum.verkaufswert + " €" }, diff --git a/app/services/pdf/beratungshilfe/sections/F_besitz/fillVermoegenswerte.ts b/app/services/pdf/beratungshilfe/sections/F_besitz/fillVermoegenswerte.ts index 41d9d2691..9b73574f7 100644 --- a/app/services/pdf/beratungshilfe/sections/F_besitz/fillVermoegenswerte.ts +++ b/app/services/pdf/beratungshilfe/sections/F_besitz/fillVermoegenswerte.ts @@ -24,9 +24,9 @@ function fillSingleVermoegenswert( vermoegenswert: NonNullable[0], ) { let description = - vermoegenswert.art in geldanlageArtMapping + vermoegenswert.art && vermoegenswert.art in geldanlageArtMapping ? `Art: ${geldanlageArtMapping[vermoegenswert.art]}` - : vermoegenswert.art; + : (vermoegenswert.art ?? ""); if (vermoegenswert.eigentuemer === "myselfAndSomeoneElse") description += `, Eigentümer:in: ${eigentuemerMapping[vermoegenswert.eigentuemer]}`; @@ -95,13 +95,19 @@ export const fillVermoegenswerte: BerHPdfFillFunction = ({ level: "h3", }); geldanlagen.forEach((geldanlage, index) => { + const geldanlageArt = geldanlage.art + ? geldanlageArtMapping[geldanlage.art] + : ""; + const geldanlageEigentumer = geldanlage.eigentuemer + ? eigentuemerMapping[geldanlage.eigentuemer] + : ""; attachment.push( { title: `Geldanlage ${index + 1}`, level: "h4" }, - { title: "Art", text: geldanlageArtMapping[geldanlage.art] }, + { title: "Art", text: geldanlageArt }, { title: "Wert", text: geldanlage.wert }, { title: "Eigentümer:in", - text: eigentuemerMapping[geldanlage.eigentuemer], + text: geldanlageEigentumer, }, ); if (geldanlage.auszahlungdatum) diff --git a/tests/fixtures/prozesskostenhilfeFormularData.ts b/tests/fixtures/prozesskostenhilfeFormularData.ts index c470fad86..2ca66eb49 100644 --- a/tests/fixtures/prozesskostenhilfeFormularData.ts +++ b/tests/fixtures/prozesskostenhilfeFormularData.ts @@ -11,8 +11,6 @@ import { prozesskostenhilfeGrundvoraussetzungen as grundvoraussetzungenSchema } import { Eigentuemer, financialEntrySchema, - gelanlagenArraySchema, - grundeigentumArraySchema, unterhaltszahlungSchema, } from "~/flows/shared/finanzielleAngaben/context"; import { checkedOptional } from "~/services/validation/checkedCheckbox"; @@ -84,7 +82,7 @@ export const happyPathData: ProzesskostenhilfeFormularContext = { ], geldanlagen: [ { - art: gelanlagenArraySchema.element.shape.art.Enum.sonstiges, + art: "sonstiges", verwendungszweck: faker.lorem.sentence(), eigentuemer: Eigentuemer.Enum.myself, wert: faker.finance.amount(), @@ -113,8 +111,8 @@ export const happyPathData: ProzesskostenhilfeFormularContext = { ], grundeigentum: [ { - isBewohnt: grundeigentumArraySchema.element.shape.isBewohnt.Enum.yes, - art: grundeigentumArraySchema.element.shape.art.Enum.einfamilienhaus, + isBewohnt: "yes", + art: "einfamilienhaus", eigentuemer: Eigentuemer.Enum.myselfAndSomeoneElse, flaeche: faker.number.int().toString(), verkaufswert: faker.finance.amount(),