From b00456b31a41ac7f9128f714a560d1887af92e4d Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 28 Aug 2019 23:38:28 +0200 Subject: [PATCH] Application not run migration if test --- src/main/kotlin/fr/dcproject/Application.kt | 10 ++++++++-- src/test/kotlin/RunCucumberTest.kt | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/fr/dcproject/Application.kt b/src/main/kotlin/fr/dcproject/Application.kt index f156011..9d248e3 100644 --- a/src/main/kotlin/fr/dcproject/Application.kt +++ b/src/main/kotlin/fr/dcproject/Application.kt @@ -7,12 +7,14 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategy import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.datatype.joda.JodaModule import com.github.jasync.sql.db.postgresql.exceptions.GenericDatabaseException +import fr.dcproject.Env.PROD import fr.dcproject.entity.Article import fr.dcproject.entity.Citizen import fr.dcproject.entity.Constitution import fr.dcproject.entity.User import fr.dcproject.routes.* import fr.dcproject.security.voter.* +import fr.postgresjson.migration.Migrations import io.ktor.application.Application import io.ktor.application.ApplicationCall import io.ktor.application.call @@ -41,10 +43,12 @@ import fr.dcproject.repository.User as UserRepository fun main(args: Array): Unit = io.ktor.server.jetty.EngineMain.main(args) +enum class Env { PROD, TEST, CUCUMBER } + @KtorExperimentalAPI @KtorExperimentalLocationsAPI @Suppress("unused") // Referenced in application.conf -fun Application.module() { +fun Application.module(env: Env = PROD) { install(Koin) { Slf4jLog() modules(Module) @@ -171,5 +175,7 @@ fun Application.module() { } // TODO move to postgresJson lib - get().run() + if (env == PROD) { + get().run() + } } diff --git a/src/test/kotlin/RunCucumberTest.kt b/src/test/kotlin/RunCucumberTest.kt index 736aca1..81110bd 100644 --- a/src/test/kotlin/RunCucumberTest.kt +++ b/src/test/kotlin/RunCucumberTest.kt @@ -1,4 +1,5 @@ import feature.KtorServerContext +import fr.dcproject.Env.CUCUMBER import fr.dcproject.config import fr.dcproject.module import fr.dcproject.utils.LoggerDelegate @@ -27,7 +28,7 @@ class RunCucumberTest: En, KoinTest { private val logger: Logger? by LoggerDelegate() val ktorContext = KtorServerContext { - module() + module(CUCUMBER) } init { @@ -37,7 +38,7 @@ class RunCucumberTest: En, KoinTest { config.username = "test" config.password = "test" - withTestApplication({ module() }) { + withTestApplication({ module(CUCUMBER) }) { migrations() fixtures() }