Skip to content

Commit 664accd

Browse files
lagt på søk i feilmelding path for å legge på fnutter for perioder map (#228)
* lagt på søk i feilmelding path for å legge på fnutter for perioder map * slettet noe som ikke skal være med
1 parent bd793ad commit 664accd

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

soknad/src/main/java/no/nav/k9/søknad/felles/Feil.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,30 @@ public static <O> Feil toFeil(ConstraintViolation<O> constraintViolation) {
6464
feilkode = "påkrevd";
6565
feilmelding = constraintMessage;
6666
}
67+
var path = constraintViolation.getPropertyPath().toString();
68+
path = leggTilFnutterIPathHvorSøkeordFinnes(path, "perioder[");
6769

6870
return new Feil(
69-
constraintViolation.getPropertyPath().toString(),
71+
path,
7072
feilkode,
7173
feilmelding);
7274
}
7375

76+
private static String leggTilFnutterIPathHvorSøkeordFinnes(String path, String søkeord) {
77+
var positionStart = path.indexOf(søkeord);
78+
if (positionStart != -1) {
79+
var positionEnd = path.indexOf("]", positionStart);
80+
path = addChar(path, '\'', positionStart+ søkeord.length());
81+
path = addChar(path, '\'', positionEnd+1);
82+
}
83+
return path;
84+
}
85+
86+
public static String addChar(String str, char ch, int position) {
87+
StringBuilder sb = new StringBuilder(str);
88+
sb.insert(position, ch);
89+
return sb.toString();
90+
}
7491

7592
@Override
7693
public boolean equals(Object o) {

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/v1/SøknadTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import static org.assertj.core.api.Assertions.assertThat;
1111
import static org.junit.jupiter.api.Assertions.assertThrows;
1212

13+
import java.time.Duration;
1314
import java.time.LocalDate;
1415
import java.util.List;
1516

@@ -23,6 +24,7 @@
2324
import no.nav.k9.søknad.felles.type.Periode;
2425
import no.nav.k9.søknad.ytelse.psb.SøknadEksempel;
2526
import no.nav.k9.søknad.ytelse.psb.YtelseEksempel;
27+
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.ArbeidstidPeriodeInfo;
2628

2729
class SøknadTest {
2830
private static final Periode TEST_PERIODE = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
@@ -143,6 +145,24 @@ public void bostederKanIkkeHaInvertertePerioder() {
143145
var feil = verifyHarFeil(søknad, List.of());
144146
feilInneholder(feil, "missingArgument");
145147
}
148+
149+
@Test
150+
public void søknadLagerRiktigFeilmeldingPathForNullFeil() {
151+
var søknadsperiode = new Periode(LocalDate.now().minusWeeks(2), LocalDate.now().plusWeeks(2));
152+
var ytelse = YtelseEksempel.minimumYtelseMedSøknadsperiode(søknadsperiode);
153+
154+
var arbeidstidPeriodeInfo = new ArbeidstidPeriodeInfo().medFaktiskArbeidTimerPerDag(Duration.ofHours(5));
155+
var arbeidstaker = YtelseEksempel.lagArbeidstaker(arbeidstidPeriodeInfo, søknadsperiode);
156+
ytelse.getArbeidstid().leggeTilArbeidstaker(arbeidstaker);
157+
var feil = verifyHarFeil(SøknadEksempel.søknad(ytelse));
158+
159+
var forventetPath =
160+
"ytelse.arbeidstid.arbeidstakerList[0].arbeidstidInfo.perioder['"
161+
+ søknadsperiode
162+
+ "'].jobberNormaltTimerPerDag";
163+
feilInneholder(feil, forventetPath, "nullFeil");
164+
165+
}
146166

147167
//TODO legge på getSøknadsperioder test
148168

0 commit comments

Comments
 (0)