From eacb662f167ec66f3d8922cbbddc7f85df9437fb Mon Sep 17 00:00:00 2001 From: SandraLekve <78852953+SandraLekve@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:11:43 +0100 Subject: [PATCH] =?UTF-8?q?H=C3=A5ndtering=20av=20manglende=20s=C3=B8knads?= =?UTF-8?q?type=20(#51)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt | 14 +++-- .../no/nav/familie/pdf/pdf/PdfServiceTest.kt | 62 ++++++++++++++++--- 2 files changed, 61 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt b/src/main/kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt index e9c16a0..3ed1ff2 100644 --- a/src/main/kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt +++ b/src/main/kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt @@ -230,15 +230,17 @@ object PdfUtils { innholdsfortegnelseOppføringer: List, ) { val tittel = overskrift.substringBefore(" (") - val søknadstype = overskrift.substringAfter(" (").trimEnd(')') + val søknadstype = overskrift.substringAfter(" (", "").trimEnd(')') add(AreaBreak(AreaBreakType.NEXT_PAGE)) add(lagOverskriftH1(tittel)) add(navLogoBilde()) - add( - Paragraph(søknadstype).apply { - setMarginTop(-10f) - }, - ) + if (søknadstype.isNotEmpty()) { + add( + Paragraph(søknadstype).apply { + setMarginTop(-10f) + } + ) + } add(lagOverskriftH2("Innholdsfortegnelse")) add(lagInnholdsfortegnelse(innholdsfortegnelseOppføringer)) } diff --git a/src/test/kotlin/no/nav/familie/pdf/pdf/PdfServiceTest.kt b/src/test/kotlin/no/nav/familie/pdf/pdf/PdfServiceTest.kt index b61021b..0239054 100644 --- a/src/test/kotlin/no/nav/familie/pdf/pdf/PdfServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/pdf/pdf/PdfServiceTest.kt @@ -16,6 +16,7 @@ import no.nav.familie.pdf.no.nav.familie.pdf.pdf.utils.lagToSiderInnholdsfortegn import no.nav.familie.pdf.pdf.PdfService import no.nav.familie.pdf.pdf.domain.FeltMap import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Test import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.Arguments @@ -47,7 +48,6 @@ class PdfServiceTest { lagAdresseMedBareLinjeskift(), lagMedTomAdresse(), ) - @JvmStatic fun flereArbeidsforhold(): Stream = Stream.of( @@ -100,6 +100,48 @@ class PdfServiceTest { } } + @Test + fun `Pdf har søknadstype i overskrift`(){ + // Arrange + val feltMap = lagMedVerdiliste() + + // Act + val pdfDoc = opprettPdf(feltMap) + val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1)) + + // Assert + assertTrue(førsteSidePdf.contains("Søknad om overgangsstønad")) + assertTrue(førsteSidePdf.contains("NAV 15-00.01")) + } + + @Test + fun `Overskrift dukker ikke opp som søknadstype`() { + // Arrange + val feltMap = lagMedFlereArbeidsforhold() + + //Act + val pdfDoc = opprettPdf(feltMap) + val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1)) + + // Assert + val antallForekomster = Regex("Arbeid, utdanning og andre aktiviteter").findAll(førsteSidePdf).count() + assertTrue(1 == antallForekomster, "Overskriften dukker opp to ganger") + } + + @Test + fun `Pdf har ikke parenteser i overskrift`() { + // Arrange + val feltMap = lagMedVerdiliste() + + // Act + val pdfDoc = opprettPdf(feltMap) + val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1)) + + // Assert + assertFalse(førsteSidePdf.contains("("), "Overskriften inneholder '('"); + assertFalse(førsteSidePdf.contains(")"), "Overskriften inneholder ')'"); + } + @ParameterizedTest @MethodSource("innholdsfortegnelseMedEnOgToSider") fun `Pdf legger forside med innholdsfortegnelse først`(feltMap: FeltMap) { @@ -111,9 +153,11 @@ class PdfServiceTest { assertTrue(førsteSideTekst.contains("Søknad om overgangsstønad")) } - @ParameterizedTest - @MethodSource("flereArbeidsforhold") - fun `Pdf lager tabell dersom du har flere arbeidsforhold`(feltMap: FeltMap) { + @Test + fun `Pdf lager tabell dersom du har flere arbeidsforhold`() { + // Arrange + val feltMap = lagMedFlereArbeidsforhold() + // Act val pdfDoc = opprettPdf(feltMap) val tekstIPdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(2)) @@ -131,7 +175,7 @@ class PdfServiceTest { ) { // Act val pdfDoc = opprettPdf(feltMap) - val firstPageText = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1)) + val førsteSideTekst = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1)) // Assert val forventetInnholdsfortegnelse = @@ -139,9 +183,9 @@ class PdfServiceTest { "Innsendingsdetaljer" to forventetSide, ) for ((label, forventetSide) in forventetInnholdsfortegnelse) { - assertTrue(firstPageText.contains("$label $forventetSide")) - val actualPageText = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(forventetSide)) - assertTrue(actualPageText.contains(label)) + assertTrue(førsteSideTekst.contains("$label $forventetSide")) + val faktiskSideTekst = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(forventetSide)) + assertTrue(faktiskSideTekst.contains(label)) } } @@ -174,4 +218,4 @@ class PdfServiceTest { val pdfDoc = PdfADocument(pdfReader, pdfWriter) return pdfDoc } -} +} \ No newline at end of file