Skip to content

Commit

Permalink
Bruk standard testoppsett i etterlatte-api (#6482)
Browse files Browse the repository at this point in the history
  • Loading branch information
sebassonav authored Nov 28, 2024
1 parent e683b59 commit 6350758
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 132 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ import io.ktor.http.HttpHeaders
import io.ktor.http.HttpStatusCode
import io.ktor.http.contentType
import io.ktor.serialization.jackson.JacksonConverter
import io.ktor.server.config.HoconApplicationConfig
import io.ktor.server.testing.testApplication
import io.mockk.clearAllMocks
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.confirmVerified
import io.mockk.mockk
import no.nav.etterlatte.behandling.sakId1
import no.nav.etterlatte.ktor.runServerWithConfig
import no.nav.etterlatte.ktor.startRandomPort
import no.nav.etterlatte.ktor.token.CLIENT_ID
import no.nav.etterlatte.ktor.token.issueSaksbehandlerToken
Expand All @@ -32,9 +32,7 @@ import no.nav.etterlatte.libs.common.objectMapper
import no.nav.etterlatte.libs.common.sak.Sak
import no.nav.etterlatte.libs.common.sak.SakId
import no.nav.etterlatte.libs.common.toJson
import no.nav.etterlatte.libs.ktor.restModule
import no.nav.etterlatte.libs.ktor.route.FoedselsnummerDTO
import no.nav.etterlatte.libs.ktor.route.routeLogger
import no.nav.etterlatte.libs.ktor.token.Issuer
import no.nav.security.mock.oauth2.MockOAuth2Server
import org.junit.jupiter.api.AfterAll
Expand All @@ -48,7 +46,6 @@ import java.util.UUID
class BehandlingSakRoutesTest {
private val mockOAuth2Server = MockOAuth2Server()
private val behandlingService = mockk<BehandlingService>()
private lateinit var applicationConfig: HoconApplicationConfig

@BeforeAll
fun before() {
Expand All @@ -70,17 +67,13 @@ class BehandlingSakRoutesTest {

@Test
fun `skal gi 401 naar token mangler`() {
val conff = config(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
applicationConfig = HoconApplicationConfig(conff)
val conff = configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}

val response =
Expand All @@ -95,17 +88,13 @@ class BehandlingSakRoutesTest {

@Test
fun `skal gi 401 når rolle mangler`() {
val conff = config(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
applicationConfig = HoconApplicationConfig(conff)
val conff = configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}

val response =
Expand All @@ -121,17 +110,13 @@ class BehandlingSakRoutesTest {

@Test
fun `skal gi 500 når body mangler rolle les-oms-sak-for-person(kun dev)`() {
val conff = config(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
applicationConfig = HoconApplicationConfig(conff)
val conff = configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}

val response =
Expand All @@ -151,21 +136,13 @@ class BehandlingSakRoutesTest {
fun `skal gi 500 når body mangler pensjonSaksbehandler`() {
val pensjonSaksbehandler = UUID.randomUUID().toString()
val conff =
config(
mockOAuth2Server.config.httpServer.port(),
Issuer.AZURE.issuerName,
pensjonSaksbehandler = pensjonSaksbehandler,
)
applicationConfig = HoconApplicationConfig(conff)
configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName, pensjonSaksbehandler = pensjonSaksbehandler)
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}

val response =
Expand All @@ -185,31 +162,18 @@ class BehandlingSakRoutesTest {
fun `pensjonSaksbehandler kan hente saksliste for fnr`() {
val pensjonSaksbehandler = UUID.randomUUID().toString()
val conff =
config(
mockOAuth2Server.config.httpServer.port(),
Issuer.AZURE.issuerName,
pensjonSaksbehandler = pensjonSaksbehandler,
)
applicationConfig = HoconApplicationConfig(conff)
configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName, pensjonSaksbehandler = pensjonSaksbehandler)
val requestFnr = FoedselsnummerDTO(fnr)
val sakIdListesvar = listOf(sakId1)
coEvery { behandlingService.hentSakforPerson(requestFnr) } returns sakIdListesvar
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
val client =
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
}
val client =
createClient {
install(ContentNegotiation) {
register(ContentType.Application.Json, JacksonConverter(objectMapper))
}
}

val response =
client.post("api/oms/person/sak") {
Expand All @@ -233,22 +197,14 @@ class BehandlingSakRoutesTest {
fun `Kan hente sak men sak er null og kaster da exception IkkeFunnetException men logges `() {
val pensjonSaksbehandler = UUID.randomUUID().toString()
val conff =
config(
mockOAuth2Server.config.httpServer.port(),
Issuer.AZURE.issuerName,
pensjonSaksbehandler = pensjonSaksbehandler,
)
applicationConfig = HoconApplicationConfig(conff)
configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName, pensjonSaksbehandler = pensjonSaksbehandler)
coEvery { behandlingService.hentSak(any()) } returns null
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
val client =
createClient {
Expand Down Expand Up @@ -278,12 +234,7 @@ class BehandlingSakRoutesTest {
fun `Kan hente sak, verifiserer at den blir returnert`() {
val pensjonSaksbehandler = UUID.randomUUID().toString()
val conff =
config(
mockOAuth2Server.config.httpServer.port(),
Issuer.AZURE.issuerName,
pensjonSaksbehandler = pensjonSaksbehandler,
)
applicationConfig = HoconApplicationConfig(conff)
configMedRoller(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName, pensjonSaksbehandler = pensjonSaksbehandler)
val sakId: Long = 12
val funnetSak =
Sak(
Expand All @@ -296,21 +247,13 @@ class BehandlingSakRoutesTest {
)
coEvery { behandlingService.hentSak(any()) } returns funnetSak
testApplication {
environment { config = applicationConfig }
application {
restModule(routeLogger) {
val client =
runServerWithConfig(applicationConfig = conff) {
behandlingSakRoutes(
behandlingService = behandlingService,
config = conff,
)
}
}
val client =
createClient {
install(ContentNegotiation) {
register(ContentType.Application.Json, JacksonConverter(objectMapper))
}
}

val response =
client.get("/api/sak/$sakId") {
Expand All @@ -330,7 +273,7 @@ class BehandlingSakRoutesTest {
}
}

private fun config(
private fun configMedRoller(
port: Int,
issuerId: String,
pensjonSaksbehandler: String? = UUID.randomUUID().toString(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,16 @@ import io.ktor.client.request.parameter
import io.ktor.http.ContentType
import io.ktor.http.HttpHeaders
import io.ktor.http.HttpStatusCode
import io.ktor.server.application.Application
import io.ktor.server.config.HoconApplicationConfig
import io.ktor.server.testing.ApplicationTestBuilder
import io.ktor.server.testing.testApplication
import io.mockk.clearAllMocks
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.confirmVerified
import io.mockk.mockk
import no.nav.etterlatte.ktor.runServerWithConfig
import no.nav.etterlatte.ktor.startRandomPort
import no.nav.etterlatte.libs.common.person.Folkeregisteridentifikator
import no.nav.etterlatte.libs.ktor.restModule
import no.nav.etterlatte.libs.ktor.route.routeLogger
import no.nav.etterlatte.libs.ktor.token.APP
import no.nav.etterlatte.libs.ktor.token.Claims
import no.nav.etterlatte.libs.ktor.token.Issuer
Expand All @@ -41,7 +39,6 @@ class SamordningVedtakRouteTest {
private val mockOAuth2Server = MockOAuth2Server()
private val samordningVedtakService = mockk<SamordningVedtakService>()
private lateinit var config: Config
private lateinit var applicationConfig: HoconApplicationConfig

@BeforeAll
fun before() {
Expand All @@ -53,15 +50,12 @@ class SamordningVedtakRouteTest {
@BeforeEach
fun before() {
config = config(mockOAuth2Server.config.httpServer.port(), Issuer.MASKINPORTEN.issuerName)
applicationConfig = HoconApplicationConfig(config)
}

@Test
fun `skal gi 401 når token mangler`() {
testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/vedtak/123") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand All @@ -75,9 +69,7 @@ class SamordningVedtakRouteTest {
@Test
fun `skal gi 401 med token hvor scope mangler`() {
testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/vedtak/123") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand All @@ -92,9 +84,7 @@ class SamordningVedtakRouteTest {
@Test
fun `skal gi 400 dersom tpnr-header mangler`() {
testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/vedtak/123") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand All @@ -119,9 +109,7 @@ class SamordningVedtakRouteTest {
opprettSamordningVedtakDto()

testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/vedtak/123") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand Down Expand Up @@ -156,9 +144,7 @@ class SamordningVedtakRouteTest {
listOf(opprettSamordningVedtakDto())

testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/vedtak") {
parameter("fomDato", virkFom)
Expand Down Expand Up @@ -203,15 +189,12 @@ class SamordningVedtakRouteTest {
@BeforeEach
fun before() {
config = config(mockOAuth2Server.config.httpServer.port(), Issuer.AZURE.issuerName)
applicationConfig = HoconApplicationConfig(config)
}

@Test
fun `skal gi 401 når token mangler`() {
testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/pensjon/vedtak") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand All @@ -226,9 +209,7 @@ class SamordningVedtakRouteTest {
@Test
fun `skal gi 401 med token hvor rolle mangler`() {
testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/pensjon/vedtak") {
header(HttpHeaders.ContentType, ContentType.Application.Json.toString())
Expand All @@ -253,9 +234,7 @@ class SamordningVedtakRouteTest {
listOf(opprettSamordningVedtakDto())

testApplication {
environment { config = applicationConfig }
application { samordningVedtakApi() }

samordningVedtakApi()
val response =
client.get("/api/pensjon/vedtak") {
parameter("fomDato", virkFom)
Expand Down Expand Up @@ -293,8 +272,8 @@ class SamordningVedtakRouteTest {
}
}

private fun Application.samordningVedtakApi() {
restModule(routeLogger) {
private fun ApplicationTestBuilder.samordningVedtakApi() {
runServerWithConfig(applicationConfig = config) {
samordningVedtakRoute(
samordningVedtakService = samordningVedtakService,
config = config,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ import no.nav.etterlatte.libs.common.logging.getCorrelationId
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
import no.nav.etterlatte.libs.ktor.erDeserialiseringsException
import no.nav.etterlatte.libs.ktor.feilhaandtering.EscapeUtils.escape
import no.nav.etterlatte.libs.ktor.route.routeLogger
import no.nav.etterlatte.libs.ktor.skjulAllePotensielleFnr
import org.slf4j.Logger
import org.slf4j.LoggerFactory

private val routeLogger = LoggerFactory.getLogger("Route")

class StatusPagesKonfigurasjon(
private val sikkerLogg: Logger,
Expand Down
Loading

0 comments on commit 6350758

Please sign in to comment.