diff --git a/build.gradle.kts b/build.gradle.kts index a2187bb..2eccbd3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -63,6 +63,7 @@ dependencies { testImplementation("io.mockk", "mockk", "1.13.16") testImplementation("org.jetbrains.kotlinx", "kotlinx-coroutines-test", "1.7.3") testImplementation("org.junit.jupiter", "junit-jupiter-params", "5.10.0") + testImplementation("io.ktor", "ktor-server-test-host", ktorVersion) } ktlint { diff --git a/src/main/kotlin/com/wire/apps/polls/setup/KtorInstallation.kt b/src/main/kotlin/com/wire/apps/polls/setup/KtorInstallation.kt index 1991afc..4783839 100644 --- a/src/main/kotlin/com/wire/apps/polls/setup/KtorInstallation.kt +++ b/src/main/kotlin/com/wire/apps/polls/setup/KtorInstallation.kt @@ -72,11 +72,7 @@ fun Application.connectDatabase() { installationLogger.info { "DB connected." } migrateDatabase(dbConfig) } else { - // TODO verify handling, maybe exit the App? - installationLogger.error { - "It was not possible to connect to db database! " + - "The application will start but it won't work." - } + error("Unable to connect to the database") } } diff --git a/src/test/kotlin/com/wire/apps/polls/setup/SetupTest.kt b/src/test/kotlin/com/wire/apps/polls/setup/SetupTest.kt new file mode 100644 index 0000000..35b27c0 --- /dev/null +++ b/src/test/kotlin/com/wire/apps/polls/setup/SetupTest.kt @@ -0,0 +1,27 @@ +package com.wire.apps.polls.setup + +import com.wire.apps.polls.dao.DatabaseSetup +import io.ktor.server.testing.testApplication +import io.mockk.every +import io.mockk.mockkObject +import io.mockk.unmockkObject +import kotlin.test.Test +import kotlin.test.assertFailsWith + +class SetupTest { + @Test + fun `connectDatabase throws when connection failed`() = + testApplication { + // Arrange + mockkObject(DatabaseSetup) + + every { DatabaseSetup.isConnected() } returns false + + // Act & Assert + assertFailsWith { + application.connectDatabase() + } + + unmockkObject(DatabaseSetup) + } +}