From 99438b1ff99c870e669c41c7e5d5647e8eff00f0 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 10 Feb 2021 01:08:23 +0100 Subject: [PATCH] Fix engine start/stop for integration tests --- src/test/kotlin/integration/BaseTest.kt | 20 ++++++++++++++----- .../integration/{citizen => }/CitizenTest.kt | 2 +- .../integration/{auth => }/LoginTest.kt | 2 +- .../integration/{auth => }/RegisterTest.kt | 3 +-- 4 files changed, 18 insertions(+), 9 deletions(-) rename src/test/kotlin/integration/{citizen => }/CitizenTest.kt (99%) rename src/test/kotlin/integration/{auth => }/LoginTest.kt (98%) rename src/test/kotlin/integration/{auth => }/RegisterTest.kt (97%) diff --git a/src/test/kotlin/integration/BaseTest.kt b/src/test/kotlin/integration/BaseTest.kt index 017e00d..eb48ade 100644 --- a/src/test/kotlin/integration/BaseTest.kt +++ b/src/test/kotlin/integration/BaseTest.kt @@ -14,6 +14,8 @@ import io.ktor.util.KtorExperimentalAPI import io.lettuce.core.RedisClient import io.lettuce.core.api.sync.RedisCommands import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.isActive +import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.BeforeEach @@ -32,9 +34,10 @@ abstract class BaseTest : KoinTest { .apply { setUri(config.rabbitmq) } .newConnection() .createChannel() - private val engine = TestApplicationEngine(createTestEnvironment()) } + private val engine = TestApplicationEngine(createTestEnvironment()) + protected fun withIntegrationApplication( test: TestApplicationEngine.() -> R ): R { @@ -43,17 +46,24 @@ abstract class BaseTest : KoinTest { @BeforeAll fun before() { + engine.start() + engine.application.module(TEST) if (init == false) { - engine.start() - engine.application.module(TEST) init = true get().run { forceAllDown() run() } - get() - .sendQuery("start transaction;", listOf()) } + get() + .sendQuery("start transaction;", listOf()) + } + + @AfterAll + fun after() { + get() + .sendQuery("rollback;", listOf()) + engine.stop(0, 0) } @BeforeEach diff --git a/src/test/kotlin/integration/citizen/CitizenTest.kt b/src/test/kotlin/integration/CitizenTest.kt similarity index 99% rename from src/test/kotlin/integration/citizen/CitizenTest.kt rename to src/test/kotlin/integration/CitizenTest.kt index a3d7673..22a8b0f 100644 --- a/src/test/kotlin/integration/citizen/CitizenTest.kt +++ b/src/test/kotlin/integration/CitizenTest.kt @@ -1,4 +1,4 @@ -package integration.citizen +package integration import integration.BaseTest import integration.asserts.`And have property` diff --git a/src/test/kotlin/integration/auth/LoginTest.kt b/src/test/kotlin/integration/LoginTest.kt similarity index 98% rename from src/test/kotlin/integration/auth/LoginTest.kt rename to src/test/kotlin/integration/LoginTest.kt index 99e99a3..85b84c2 100644 --- a/src/test/kotlin/integration/auth/LoginTest.kt +++ b/src/test/kotlin/integration/LoginTest.kt @@ -1,4 +1,4 @@ -package integration.auth +package integration import integration.BaseTest import integration.asserts.`And the response should not be null` diff --git a/src/test/kotlin/integration/auth/RegisterTest.kt b/src/test/kotlin/integration/RegisterTest.kt similarity index 97% rename from src/test/kotlin/integration/auth/RegisterTest.kt rename to src/test/kotlin/integration/RegisterTest.kt index bb72617..e63c4bc 100644 --- a/src/test/kotlin/integration/auth/RegisterTest.kt +++ b/src/test/kotlin/integration/RegisterTest.kt @@ -1,6 +1,5 @@ -package integration.auth +package integration -import integration.BaseTest import integration.asserts.`Then the response should be` import integration.asserts.`when`.`When I send a POST request` import io.ktor.http.HttpStatusCode