fix testApplicationWithConfig

This commit is contained in:
2025-04-05 04:44:48 +02:00
parent e1529ee52c
commit fd954e631d
7 changed files with 60 additions and 56 deletions

View File

@@ -5,7 +5,6 @@ import eventDemo.business.entity.Deck
import eventDemo.configuration.business.configureGameListener
import eventDemo.configuration.injection.appKoinModule
import eventDemo.configuration.ktor.configuration
import io.kotest.engine.runBlocking
import io.ktor.server.config.ApplicationConfig
import io.ktor.server.testing.ApplicationTestBuilder
import io.ktor.server.testing.testApplication
@@ -13,6 +12,7 @@ import io.ktor.utils.io.KtorDsl
import org.koin.core.Koin
import org.koin.core.module.KoinApplicationDslMarker
import org.koin.dsl.koinApplication
import org.koin.ktor.ext.getKoin
import redis.clients.jedis.UnifiedJedis
import javax.sql.DataSource
@@ -24,22 +24,31 @@ fun Deck.allCards(): Set<Card> =
@KoinApplicationDslMarker
suspend fun <T> testKoinApplicationWithConfig(block: suspend Koin.() -> T): T =
koinApplication { modules(appKoinModule(ApplicationConfig("application.conf").configuration())) }.koin.block()
koinApplication { modules(appKoinModule(ApplicationConfig("application.conf").configuration())) }
.koin
.apply {
cleanDataTest()
configureGameListener()
}.block()
@KtorDsl
suspend fun testApplicationWithConfig(block: suspend ApplicationTestBuilder.(koin: Koin) -> Unit) {
fun testApplicationWithConfig(
configBuilder: Koin.() -> Unit = {},
block: suspend ApplicationTestBuilder.() -> Unit,
) {
testApplication {
val conf = ApplicationConfig("application.conf")
environment {
config = conf
}
val koin = koinApplication { modules(appKoinModule(conf.configuration())) }.koin
koin.cleanDataTest()
koin.configureGameListener()
runBlocking {
block(koin)
application {
val koin = getKoin()
koin.cleanDataTest()
koin.configureGameListener()
configBuilder(koin)
}
block()
}
}