Skip to content

Commit

Permalink
Fjern utdaterte valideringer og noekler (#489)
Browse files Browse the repository at this point in the history
  • Loading branch information
bjerga authored Apr 22, 2024
1 parent a0993f0 commit 1b2fb87
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 187 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import io.ktor.server.routing.route
import kotlinx.serialization.SerializationException
import kotlinx.serialization.builtins.serializer
import no.nav.helse.rapids_rivers.RapidsConnection
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.FullLoennIArbeidsgiverPerioden
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Innsending
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Refusjon
import no.nav.helsearbeidsgiver.inntektsmelding.api.RedisPoller
import no.nav.helsearbeidsgiver.inntektsmelding.api.RedisPollerTimeoutException
import no.nav.helsearbeidsgiver.inntektsmelding.api.Routes
Expand Down Expand Up @@ -56,56 +54,9 @@ fun Route.innsendingRoute(
}
}
.fromJson(Innsending.serializer())
.let {
// TODO gjør denne sjekken ved opprettelse
if (it.fullLønnIArbeidsgiverPerioden?.utbetalerFullLønn == true) {
it.copy(
fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden(
utbetalerFullLønn = true,
begrunnelse = null,
utbetalt = null
)
)
} else {
it
}
}
.let {
// TODO gjør denne sjekken ved opprettelse
if (!it.refusjon.utbetalerHeleEllerDeler) {
it.copy(
refusjon = Refusjon(
utbetalerHeleEllerDeler = false,
refusjonPrMnd = null,
refusjonOpphører = null,
refusjonEndringer = null
)
)
} else {
it
}
}
.let {
// TODO gjør denne sjekken ved opprettelse
if (it.forespurtData?.contains("arbeidsgiverperiode") == false) {
if (it.fullLønnIArbeidsgiverPerioden != null) {
"Frontend sender med ${Innsending::fullLønnIArbeidsgiverPerioden.name} når man ikke ber om AGP."
.also { feilmelding ->
logger.error(feilmelding)
sikkerLogger.error(feilmelding)
}
}
it.copy(
fullLønnIArbeidsgiverPerioden = null
)
} else {
it
}
}

tilgangskontroll.validerTilgangTilForespoersel(call.request, forespoerselId)

// TODO sjekk gyldighet mot forespørsel, f. eks. forespurtData matcher
request.validate()
val innloggerFnr = call.request.lesFnrFraAuthToken()
val clientId = producer.publish(forespoerselId, request, innloggerFnr)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,13 @@

package no.nav.helsearbeidsgiver.inntektsmelding.api.innsending

import io.kotest.matchers.nulls.shouldBeNull
import io.kotest.matchers.shouldBe
import io.ktor.client.statement.bodyAsText
import io.ktor.http.HttpStatusCode
import io.mockk.clearAllMocks
import io.mockk.coEvery
import io.mockk.every
import io.mockk.verifySequence
import kotlinx.serialization.json.JsonNull
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.BegrunnelseIngenEllerRedusertUtbetalingKode
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.FullLoennIArbeidsgiverPerioden
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Innsending
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Inntektsmelding
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.Refusjon
import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.RefusjonEndring
import no.nav.helsearbeidsgiver.felles.Tilgang
import no.nav.helsearbeidsgiver.felles.test.mock.DELVIS_INNSENDING_REQUEST
import no.nav.helsearbeidsgiver.felles.test.mock.GYLDIG_INNSENDING_REQUEST
Expand All @@ -31,8 +23,6 @@ import no.nav.helsearbeidsgiver.inntektsmelding.api.utils.ApiTest
import no.nav.helsearbeidsgiver.utils.json.fromJson
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.json.toJsonStr
import no.nav.helsearbeidsgiver.utils.test.date.april
import no.nav.helsearbeidsgiver.utils.test.date.mars
import no.nav.helsearbeidsgiver.utils.test.mock.mockConstructor
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.BeforeEach
Expand Down Expand Up @@ -127,127 +117,6 @@ class InnsendingRouteKtTest : ApiTest() {
assertEquals(InnsendingResponse(Mock.forespoerselId).toJsonStr(InnsendingResponse.serializer()), response.bodyAsText())
}

@Test
fun `fjern ugyldige verdier ved utbetaling av full lønn i arbeisdgiverperioden`() = testApi {
mockTilgang(Tilgang.HAR_TILGANG)

val mockClientId = UUID.randomUUID()

// Må bare returnere noe
coEvery { anyConstructed<RedisPoller>().hent(mockClientId, any(), any()) } returns JsonNull

val request = GYLDIG_INNSENDING_REQUEST.copy(
fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden(
utbetalerFullLønn = true,
begrunnelse = BegrunnelseIngenEllerRedusertUtbetalingKode.StreikEllerLockout,
utbetalt = 1_000_000.0
)
)
.toJson(Innsending.serializer())

mockConstructor(InnsendingProducer::class) {
every { anyConstructed<InnsendingProducer>().publish(any(), any(), any()) } returns mockClientId

post(path, request)

verifySequence {
anyConstructed<InnsendingProducer>().publish(
forespoerselId = any(),
request = withArg {
it.fullLønnIArbeidsgiverPerioden shouldBe FullLoennIArbeidsgiverPerioden(
utbetalerFullLønn = true,
begrunnelse = null,
utbetalt = null
)
},
arbeidsgiverFnr = any()
)
}
}
}

@Test
fun `fjern ugyldige verdier ved ingen refusjon`() = testApi {
mockTilgang(Tilgang.HAR_TILGANG)

val mockClientId = UUID.randomUUID()

// Må bare returnere noe
coEvery { anyConstructed<RedisPoller>().hent(mockClientId, any(), any()) } returns JsonNull

val request = GYLDIG_INNSENDING_REQUEST.copy(
refusjon = Refusjon(
utbetalerHeleEllerDeler = false,
refusjonPrMnd = 2_222_222.0,
refusjonOpphører = 28.april,
refusjonEndringer = listOf(
RefusjonEndring(
beløp = 1_111_111.0,
dato = 20.mars
)
)
)
)
.toJson(Innsending.serializer())

mockConstructor(InnsendingProducer::class) {
every { anyConstructed<InnsendingProducer>().publish(any(), any(), any()) } returns mockClientId

post(path, request)

verifySequence {
anyConstructed<InnsendingProducer>().publish(
forespoerselId = any(),
request = withArg {
it.refusjon shouldBe Refusjon(
utbetalerHeleEllerDeler = false,
refusjonPrMnd = null,
refusjonOpphører = null,
refusjonEndringer = null
)
},
arbeidsgiverFnr = any()
)
}
}
}

@Test
fun `fjern ugyldige verdier dersom man ikke spør om AGP`() = testApi {
mockTilgang(Tilgang.HAR_TILGANG)

val mockClientId = UUID.randomUUID()

// Må bare returnere noe
coEvery { anyConstructed<RedisPoller>().hent(mockClientId, any(), any()) } returns JsonNull

val request = GYLDIG_INNSENDING_REQUEST.copy(
forespurtData = listOf("inntekt", "refusjon"),
fullLønnIArbeidsgiverPerioden = FullLoennIArbeidsgiverPerioden(
utbetalerFullLønn = false,
begrunnelse = BegrunnelseIngenEllerRedusertUtbetalingKode.FravaerUtenGyldigGrunn,
utbetalt = 222_333.0
)
)
.toJson(Innsending.serializer())

mockConstructor(InnsendingProducer::class) {
every { anyConstructed<InnsendingProducer>().publish(any(), any(), any()) } returns mockClientId

post(path, request)

verifySequence {
anyConstructed<InnsendingProducer>().publish(
forespoerselId = any(),
request = withArg {
it.fullLønnIArbeidsgiverPerioden.shouldBeNull()
},
arbeidsgiverFnr = any()
)
}
}
}

private object Mock {
val forespoerselId: UUID = UUID.randomUUID()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,7 @@ class InnsendingService(
Key.BEHOV to BehovType.PERSISTER_IM.toJson(),
Key.UUID to transaksjonId.toJson(),
Key.FORESPOERSEL_ID to forespoerselId.toJson(),
Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()),
// TODO slett feltene under etter overgangsperiode
Key.SKJEMA_INNTEKTSMELDING to skjema.toJson(Innsending.serializer()),
Key.VIRKSOMHET to virksomhetNavn.toJson(),
Key.ARBEIDSTAKER_INFORMASJON to sykmeldt.toJson(PersonDato.serializer()),
Key.ARBEIDSGIVER_INFORMASJON to innsender.toJson(PersonDato.serializer()),
Key.FORESPOERSEL_SVAR to forespoersel.toJson(TrengerInntekt.serializer())
Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer())
)
}
}
Expand Down

0 comments on commit 1b2fb87

Please sign in to comment.