Skip to content

Commit

Permalink
Hindre flytting av evaluering mellom samarbeid
Browse files Browse the repository at this point in the history
Co-authored-by: Thomas Dufourd <thomas.dufourd@nav.no>
Co-authored-by: Nima Jimale <nima.jimale@nav.no>
  • Loading branch information
3 people committed Nov 27, 2024
1 parent 8249083 commit 370bef0
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,9 @@ class SpørreundersøkelseService(
): Either<Feil, Spørreundersøkelse> {
val behovsvurdering = spørreundersøkelseRepository.hentSpørreundersøkelse(behovsvurderingId)
?: return IASakSpørreundersøkelseError.`generell feil under uthenting`.left()
if (behovsvurdering.type == "Evaluering") {
return IASakSpørreundersøkelseError.`ugyldig type`.left()
}
if (behovsvurdering.orgnummer != oppdaterBehovsvurderingDto.orgnummer) {
return IASakSpørreundersøkelseError.`feil under oppdatering`.left()
}
Expand Down Expand Up @@ -356,5 +359,9 @@ class SpørreundersøkelseService(
return temaResultat.tilKafkaMelding().right()
}

private fun Spørreundersøkelse.finnSpørsmål(spørsmålId: UUID): Spørsmål? = temaer.flatMap { it.spørsmål }.firstOrNull { it.spørsmålId == spørsmålId }
private fun Spørreundersøkelse.finnSpørsmål(spørsmålId: UUID): Spørsmål? =
temaer.flatMap { it.spørsmål }.firstOrNull {
it.spørsmålId ==
spørsmålId
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.lydia.container.ia.sak.kartlegging

import ia.felles.integrasjoner.kafkameldinger.spørreundersøkelse.SpørreundersøkelseStatus.AVSLUTTET
import ia.felles.integrasjoner.kafkameldinger.spørreundersøkelse.SpørreundersøkelseStatus.OPPRETTET
import ia.felles.integrasjoner.kafkameldinger.spørreundersøkelse.SpørreundersøkelseStatus.PÅBEGYNT
import io.kotest.assertions.shouldFail
Expand All @@ -10,11 +11,14 @@ import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.collections.shouldNotBeEmpty
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import io.kotest.matchers.string.shouldContain
import io.kotest.matchers.string.shouldNotBeEmpty
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.json.Json
import no.nav.lydia.Topic
import no.nav.lydia.helper.IASakKartleggingHelper.Companion.avslutt
import no.nav.lydia.helper.IASakKartleggingHelper.Companion.hentSpørreundersøkelse
import no.nav.lydia.helper.IASakKartleggingHelper.Companion.oppdaterBehovsvurdering
import no.nav.lydia.helper.IASakKartleggingHelper.Companion.opprettEvaluering
import no.nav.lydia.helper.IASakKartleggingHelper.Companion.start
import no.nav.lydia.helper.PlanHelper.Companion.inkluderAlt
Expand All @@ -25,6 +29,7 @@ import no.nav.lydia.helper.SakHelper.Companion.nySakIViBistår
import no.nav.lydia.helper.TestContainerHelper.Companion.kafkaContainerHelper
import no.nav.lydia.helper.forExactlyOne
import no.nav.lydia.helper.hentAlleSamarbeid
import no.nav.lydia.helper.opprettNyttSamarbeid
import no.nav.lydia.ia.eksport.SpørreundersøkelseProdusent.SerializableSpørreundersøkelse
import no.nav.lydia.ia.sak.domene.plan.PlanMalDto
import org.junit.After
Expand Down Expand Up @@ -199,4 +204,39 @@ class EvalueringApiTest {
sak.opprettEnPlan()
shouldFail { sak.opprettEvaluering() }.message shouldBe "HTTP Exception 400 Bad Request"
}

@Test
fun `skal ikke flytte evaluering mellom samarbeid`() {
val sak = nySakIViBistår(navnPåSamarbeid = "Samarbeid 1")
sak.opprettNyttSamarbeid(navn = "Samarbeid 2")
val samarbeid1 = sak.hentAlleSamarbeid().first()
val samarbeid2 = sak.hentAlleSamarbeid().last()
sak.opprettEnPlan(samarbeidId = samarbeid1.id, plan = PlanMalDto().inkluderAlt())
val evaluering = sak.opprettEvaluering(prosessId = samarbeid1.id)
evaluering.start(orgnummer = sak.orgnr, saksnummer = sak.saksnummer)
evaluering.avslutt(orgnummer = sak.orgnr, saksnummer = sak.saksnummer)
hentSpørreundersøkelse(
orgnr = sak.orgnr,
saksnummer = sak.saksnummer,
prosessId = samarbeid1.id,
type = "Evaluering",
).forExactlyOne {
it.status shouldBe AVSLUTTET
it.id shouldBe evaluering.id
}

shouldFail {
oppdaterBehovsvurdering(behovsvurdering = evaluering, sak = sak, prosessId = samarbeid2.id)
}.message shouldContain "Bad Request"

hentSpørreundersøkelse(
orgnr = sak.orgnr,
saksnummer = sak.saksnummer,
prosessId = samarbeid1.id,
type = "Evaluering",
).forExactlyOne {
it.status shouldBe AVSLUTTET
it.id shouldBe evaluering.id
}
}
}
12 changes: 9 additions & 3 deletions src/test/kotlin/no/nav/lydia/helper/TestContainerHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -410,11 +410,12 @@ class SakHelper {
fun nySakIViBistår(
orgnummer: String = VirksomhetHelper.nyttOrgnummer(),
token: String = oauth2ServerContainer.saksbehandler1.token,
navnPåSamarbeid: String? = DEFAULT_SAMARBEID_NAVN,
) = opprettSakForVirksomhet(orgnummer)
.nyHendelse(IASakshendelseType.TA_EIERSKAP_I_SAK, token = token)
.nyHendelse(IASakshendelseType.VIRKSOMHET_SKAL_KONTAKTES)
.nyHendelse(IASakshendelseType.VIRKSOMHET_KARTLEGGES)
.opprettNyttSamarbeid()
.opprettNyttSamarbeid(navn = navnPåSamarbeid)
.nyHendelse(IASakshendelseType.VIRKSOMHET_SKAL_BISTÅS)
.also {
it.status shouldBe IAProsessStatus.VI_BISTÅR
Expand Down Expand Up @@ -819,7 +820,11 @@ class PlanHelper {

fun PlanDto.antallInnholdInkludert() = temaer.flatMap { it.undertemaer }.filter { it.inkludert }.size

fun PlanDto.antallInnholdMedStatus(status: InnholdStatus) = temaer.flatMap { it.undertemaer }.filter { it.inkludert && it.status == status }.size
fun PlanDto.antallInnholdMedStatus(status: InnholdStatus) =
temaer.flatMap { it.undertemaer }.filter {
it.inkludert &&
it.status == status
}.size

fun PlanDto.tidligstStartDato(): LocalDate =
this.temaer.flatMap { it.undertemaer }
Expand Down Expand Up @@ -1158,7 +1163,8 @@ class IATjenesteoversiktHelper {

class LeveranseHelper {
companion object {
fun hentIATjenesterFraDatabase() = TestContainerHelper.postgresContainer.hentAlleRaderTilEnkelKolonne<String>("select navn from ia_tjeneste")
fun hentIATjenesterFraDatabase() =
TestContainerHelper.postgresContainer.hentAlleRaderTilEnkelKolonne<String>("select navn from ia_tjeneste")

fun leggTilModul(modul: ModulDto) =
TestContainerHelper.postgresContainer.performUpdate(
Expand Down

0 comments on commit 370bef0

Please sign in to comment.