⚗️ Hjelpefunksjoner for å skrive tester til databasen
Co-authored-by: Markus A. R. Johansen <markus.aleksander.rakil.johansen@nav.no> Co-authored-by: Amalie Erdal Mansåker <amalie.erdal.mansaker@nav.no> Co-authored-by: Hege Haavaldsen <hege.haavaldsen@nav.no> Co-authored-by: Helene Arnesen <helene.arnesen@nav.no>
This commit is contained in:
parent
77abcef166
commit
9c5613c707
1 changed files with 43 additions and 0 deletions
43
backend/src/test/kotlin/no/nav/helse/sprik/TestUtils.kt
Normal file
43
backend/src/test/kotlin/no/nav/helse/sprik/TestUtils.kt
Normal file
|
@ -0,0 +1,43 @@
|
|||
package no.nav.helse.sprik
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig
|
||||
import no.nav.helse.sprik.db.Database
|
||||
import org.flywaydb.core.Flyway
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.testcontainers.containers.PostgreSQLContainer
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
// Lager Docker-container som databasen kan kjør på, og setter opp env-variabler for oss
|
||||
fun postgres() = PostgreSQLContainer<Nothing>("postgres:15").apply {
|
||||
withReuse(true)
|
||||
withLabel("App", "db")
|
||||
start()
|
||||
println("Databasen har startet opp på port $firstMappedPort")
|
||||
}
|
||||
|
||||
// Lager en testconfig for oss for å connecte til databasen
|
||||
fun dbconfig(): HikariConfig {
|
||||
val postgres = postgres()
|
||||
return HikariConfig().apply {
|
||||
jdbcUrl = postgres.jdbcUrl
|
||||
username = postgres.username
|
||||
password = postgres.password
|
||||
maximumPoolSize = 2
|
||||
minimumIdle = 1
|
||||
idleTimeout = 500000
|
||||
connectionTimeout = 10000
|
||||
maxLifetime = 600000
|
||||
initializationFailTimeout = 5000
|
||||
}
|
||||
}
|
||||
|
||||
// Migrerer databasen
|
||||
fun Database.configureFlyway(): Database = this.also { database ->
|
||||
Flyway.configure()
|
||||
.dataSource(database.dataSource)
|
||||
.failOnMissingLocations(true)
|
||||
.cleanDisabled(false)
|
||||
.load()
|
||||
.also(Flyway::clean)
|
||||
.migrate()
|
||||
}
|
Reference in a new issue