Skip to content

Commit

Permalink
EY-4776: Feilmelding ved feil i iverksettelse (#6578)
Browse files Browse the repository at this point in the history
* Feilmelding ved feil i iverksettelse fra vedtaksvurdering

* Kast feil hvis den feiler med iverksettelse

* Legg til linting endringer fra pre-push

* Bruk internfeilexception
  • Loading branch information
emilps authored Dec 9, 2024
1 parent 79ba708 commit 3c1ad5c
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,10 @@ class VedtakBehandlingService(
val iverksattVedtakLocal =
repository.iverksattVedtak(behandlingId, tx = tx).also {
runBlocking {
behandlingKlient.iverksett(behandlingId, brukerTokenInfo, it.id)
val iverksattBehandling = behandlingKlient.iverksett(behandlingId, brukerTokenInfo, it.id)
if (!iverksattBehandling) {
throw BehandlingIverksettelseException(behandlingId)
}
}
}
iverksattVedtakLocal
Expand Down Expand Up @@ -754,6 +757,10 @@ class BehandlingstilstandException(
vedtak: Vedtak,
) : IllegalStateException("Statussjekk for behandling ${vedtak.behandlingId} feilet")

class BehandlingIverksettelseException(
behandlingId: UUID,
) : InternfeilException("Iverksettelse av behandling $behandlingId feilet")

class ManglerAvkortetYtelse :
UgyldigForespoerselException(
code = "VEDTAKSVURDERING_MANGLER_AVKORTET_YTELSE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1089,6 +1089,57 @@ internal class VedtakBehandlingServiceTest(
ikkeIverksattVedtak.status shouldBe VedtakStatus.ATTESTERT
}

@Test
fun `skal rulle tilbake vedtak ved iverksatt dersom behandling returnerer false`() {
val behandlingId = randomUUID()
val virkningstidspunkt = VIRKNINGSTIDSPUNKT_JAN_2023
val gjeldendeSaksbehandler = saksbehandler
val attestant = attestant
coEvery { behandlingKlientMock.kanFatteVedtak(any(), any()) } returns true
coEvery { behandlingKlientMock.hentSak(any(), any()) } returns
Sak(
SAKSBEHANDLER_1,
SakType.BARNEPENSJON,
sakId1,
ENHET_1,
)
coEvery { behandlingKlientMock.kanAttestereVedtak(any(), any(), any()) } returns true
coEvery { behandlingKlientMock.attesterVedtak(any(), any()) } returns true
coEvery { behandlingKlientMock.fattVedtakBehandling(any(), any()) } returns true
coEvery { behandlingKlientMock.hentBehandling(any(), any()) } returns
mockBehandling(
virkningstidspunkt,
behandlingId,
)
coEvery { vilkaarsvurderingKlientMock.hentVilkaarsvurdering(any(), any()) } returns mockVilkaarsvurdering()
coEvery { beregningKlientMock.hentBeregningOgAvkorting(any(), any(), any()) } returns
BeregningOgAvkorting(
beregning = mockBeregning(virkningstidspunkt, behandlingId),
avkorting = null,
)

coEvery { behandlingKlientMock.iverksett(any(), any(), any()) } returns false
coEvery { trygdetidKlientMock.hentTrygdetid(any(), any()) } returns trygdetidDtoUtenDiff()

runBlocking {
repository.opprettVedtak(
opprettVedtak(virkningstidspunkt = virkningstidspunkt, behandlingId = behandlingId),
)
service.fattVedtak(behandlingId, gjeldendeSaksbehandler)
service.attesterVedtak(behandlingId, KOMMENTAR, attestant)
}

assertThrows<BehandlingIverksettelseException> {
runBlocking {
service.iverksattVedtak(behandlingId, attestant)
}
}
val ikkeIverksattVedtak = repository.hentVedtak(behandlingId)!!
ikkeIverksattVedtak shouldNotBe null
ikkeIverksattVedtak.status shouldNotBe VedtakStatus.IVERKSATT
ikkeIverksattVedtak.status shouldBe VedtakStatus.ATTESTERT
}

@Test
fun `skal ikke sette vedtak til iverksatt naar vedtak ikke er attestert`() {
val behandlingId = randomUUID()
Expand Down

0 comments on commit 3c1ad5c

Please sign in to comment.