Skip to content

Commit

Permalink
Legger til mock av UnleashService på samme måte som for FeatureToggle…
Browse files Browse the repository at this point in the history
…Service (#3985)

### 💰 Hva skal gjøres, og hvorfor?
I alle tester vil nå `unleashService.isEnabled()` gi `false` og vi får
ikke testet at koden som ligger bak togglene fungerer som tiltenkt. Med
"gammel" Unleash `FeatureToggleService` ble alle toggler skrudd på i
alle enhetstester og integrasjonstester også ble alle verdikjedetester
kjørt med toggler både på og av.

Har her lagt til tilsvarende logikk for toggles i tester for
`UnleashService` som for `FeatureToggleService`.

> Vil ikke kunne merge denne før eksisterende "UnleashNext"-toggles ikke
feiler tester dersom de er skrudd på.

### 💬 Ønsker du en muntlig gjennomgang?
- [ ] Ja
- [x] Nei

---------

Co-authored-by: halvormundal <[email protected]>
Co-authored-by: halvorbmundal <[email protected]>
  • Loading branch information
3 people authored Sep 21, 2023
1 parent c4e9cc5 commit 6692c0c
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ class BrevService(
behandling = vedtak.behandling,
)

val brevperioder = if (unleashNext.isEnabled(NY_GENERERING_AV_BREVOBJEKTER)) {
val brevperioder = if (unleashNext.isEnabled(NY_GENERERING_AV_BREVOBJEKTER) && false) {
val grunnlagForBegrunnelser = vedtaksperiodeService.hentGrunnlagForBegrunnelse(vedtak.behandling)
vedtaksperioder.mapNotNull { it.lagBrevPeriode(grunnlagForBegrunnelser) }
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import no.nav.familie.ba.sak.integrasjoner.økonomi.ØkonomiKlient
import no.nav.familie.ba.sak.kjerne.tilbakekreving.TilbakekrevingKlient
import no.nav.familie.ba.sak.task.OpprettTaskService
import no.nav.familie.ba.sak.task.TaskRepositoryTestConfig
import no.nav.familie.unleash.UnleashService
import org.junit.jupiter.api.BeforeEach
import org.slf4j.MDC
import org.springframework.beans.factory.annotation.Autowired
Expand Down Expand Up @@ -46,6 +47,9 @@ abstract class AbstractMockkSpringRunner {
@Autowired
private lateinit var mockFeatureToggleService: FeatureToggleService

@Autowired
private lateinit var mockUnleashService: UnleashService

@Autowired
private lateinit var mockTilbakekrevingKlient: TilbakekrevingKlient

Expand Down Expand Up @@ -95,12 +99,18 @@ abstract class AbstractMockkSpringRunner {
}

IntegrasjonClientMock.clearIntegrasjonMocks(mockIntegrasjonClient)
IntegrasjonClientMock.clearMockFamilieIntegrasjonerTilgangskontrollClient(mockFamilieIntegrasjonerTilgangskontrollClient)
IntegrasjonClientMock.clearMockFamilieIntegrasjonerTilgangskontrollClient(
mockFamilieIntegrasjonerTilgangskontrollClient,
)

if (isMockKMock(mockFeatureToggleService)) {
ClientMocks.clearFeatureToggleMocks(mockFeatureToggleService)
}

if (isMockKMock(mockUnleashService)) {
ClientMocks.clearUnleashServiceMocks(mockUnleashService)
}

if (isMockKMock(mockEfSakRestClient)) {
EfSakRestClientMock.clearEfSakRestMocks(mockEfSakRestClient)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import no.nav.familie.kontrakter.felles.personopplysning.SIVILSTAND
import no.nav.familie.kontrakter.felles.personopplysning.Sivilstand
import no.nav.familie.kontrakter.felles.personopplysning.Statsborgerskap
import no.nav.familie.leader.LeaderClient
import no.nav.familie.unleash.UnleashService
import org.springframework.boot.test.context.TestConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Primary
Expand Down Expand Up @@ -211,6 +212,28 @@ class ClientMocks {
}
}

fun clearUnleashServiceMocks(mockUnleashService: UnleashService) {
val mockUnleashServiceAnswer = System.getProperty("mockFeatureToggleAnswer")?.toBoolean() ?: true

val featureSlot = slot<String>()
every {
mockUnleashService.isEnabled(toggleId = capture(featureSlot))
} answers {
System.getProperty(featureSlot.captured)?.toBoolean() ?: mockUnleashServiceAnswer
}
every {
mockUnleashService.isEnabled(toggleId = capture(featureSlot), defaultValue = any())
} answers {
System.getProperty(featureSlot.captured)?.toBoolean() ?: mockUnleashServiceAnswer
}

every {
mockUnleashService.isEnabled(toggleId = capture(featureSlot), properties = any())
} answers {
System.getProperty(featureSlot.captured)?.toBoolean() ?: mockUnleashServiceAnswer
}
}

fun clearPdlIdentRestClient(
mockPdlIdentRestClient: PdlIdentRestClient,
) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package no.nav.familie.ba.sak.config

import io.mockk.mockk
import no.nav.familie.ba.sak.config.featureToggle.miljø.Profil
import no.nav.familie.ba.sak.config.featureToggle.miljø.erAktiv
import no.nav.familie.unleash.UnleashService
import org.springframework.boot.test.context.TestConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Primary
import org.springframework.core.env.Environment

@TestConfiguration
class UnleashServiceMockConfig(
private val unleashService: UnleashService,
private val environment: Environment,
) {

@Bean
@Primary
fun mockUnleashService(): UnleashService {
if (environment.erAktiv(Profil.Integrasjonstest)) {
val mockUnleashService = mockk<UnleashService>(relaxed = true)

ClientMocks.clearUnleashServiceMocks(mockUnleashService)

return mockUnleashService
}
return unleashService
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.familie.ba.sak.kjerne.eøs.differanseberegning

import no.nav.familie.ba.sak.config.AbstractSpringIntegrationTest
import no.nav.familie.ba.sak.config.FeatureToggleConfig
import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.KompetanseTestController
import no.nav.familie.ba.sak.kjerne.eøs.utenlandskperiodebeløp.UtenlandskPeriodebeløpTestController
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.ValutakursTestController
Expand All @@ -13,6 +14,7 @@ import no.nav.familie.ba.sak.kjerne.tidslinje.util.jan
import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Utbetalingsperiode
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingTestController
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår
import no.nav.familie.unleash.UnleashService
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
Expand All @@ -34,6 +36,9 @@ class DifferanseberegningIntegrasjonTest : AbstractSpringIntegrationTest() {
@Autowired
lateinit var valutakursTestController: ValutakursTestController

@Autowired
lateinit var unleashService: UnleashService

@Test
fun `vilkårsvurdering med EØS-perioder + kompetanser med sekundærland fører til skjemaer med valutakurser`() {
val søkerStartdato = 1.jan(2020).tilLocalDate()
Expand Down Expand Up @@ -106,7 +111,12 @@ class DifferanseberegningIntegrasjonTest : AbstractSpringIntegrationTest() {
Vilkår.GIFT_PARTNERSKAP to "++++++++++++++++",
Vilkår.BOSATT_I_RIKET to "EEEEEEEEEEEEEEEE",
Vilkår.LOVLIG_OPPHOLD to "EEEEEEEEEEEEEEEE",
Vilkår.BOR_MED_SØKER to "ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ",
// TODO: Fiks test slik at den fungerer når toggle er skrudd på og av uten dette hacket
if (unleashService.isEnabled(FeatureToggleConfig.ENDRET_EØS_REGELVERKFILTER_FOR_BARN)) {
Vilkår.BOR_MED_SØKER to "DDDDDDDDDDDDDDDD"
} else {
Vilkår.BOR_MED_SØKER to "ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ"
},
),
)

Expand Down
9 changes: 8 additions & 1 deletion src/test/resources/application-integrasjonstest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,11 @@ spring:
AZURE_OPENID_CONFIG_TOKEN_ENDPOINT: https://login.microsoftonline.com/navq.onmicrosoft.com/oauth2/v2.0/token
AZURE_APP_CLIENT_ID: dummy

UNLEASH_SERVER_API_URL: http://dummy/api/
# Kreves for at unleash mock skal fungere:
UNLEASH_SERVER_API_URL: http://dummy/api/
UNLEASH_SERVER_API_TOKEN: dummy-token
NAIS_APP_NAME: familie-ba-sak

# Disabler unleash her for å unngå feilmeldinger tilknyttet oppkobling når vi uansett mocker alle unleash-kall i testene.
unleash:
enabled: false

0 comments on commit 6692c0c

Please sign in to comment.