From e557722bd0d8f38716f8b5a93175c20ed194df81 Mon Sep 17 00:00:00 2001 From: Peter Trifanov Date: Thu, 1 Dec 2022 18:55:56 +0600 Subject: [PATCH] Add `kotest-assertions` to common test dependencies (#445) * Add kotest assertions to common test dependencies * Start using them in some tests * Remove duplicated conversion to sequence Part of #408 --- .../saveourtool/save/buildutils/kotlin-library.gradle.kts | 6 +++++- gradle/libs.versions.toml | 4 +++- .../saveourtool/save/core/plugin/ExtraFlagsExtractor.kt | 1 + .../com/saveourtool/save/core/integration/WarnDirTest.kt | 7 ++++--- .../saveourtool/save/core/test/utils/TestUtilsCommon.kt | 3 ++- .../kotlin/com/saveourtool/save/plugin/warn/WarnPlugin.kt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/com/saveourtool/save/buildutils/kotlin-library.gradle.kts b/buildSrc/src/main/kotlin/com/saveourtool/save/buildutils/kotlin-library.gradle.kts index 24a77ebe2..550823776 100644 --- a/buildSrc/src/main/kotlin/com/saveourtool/save/buildutils/kotlin-library.gradle.kts +++ b/buildSrc/src/main/kotlin/com/saveourtool/save/buildutils/kotlin-library.gradle.kts @@ -68,7 +68,11 @@ kotlin { languageSettings.optIn("kotlin.RequiresOptIn") } val commonMain by getting - val commonTest by getting + val commonTest by getting { + dependencies { + implementation("io.kotest:kotest-assertions-core:5.3.0") + } + } val commonNonJsMain by creating { dependsOn(commonMain) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 61f246ada..890705ee8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,6 +10,7 @@ junit = "5.9.1" ktoml = "0.3.0" multiplatform-diff = "0.4.0" kotlinpoet = "1.12.0" +kotest = "5.3.0" sarif4k = "0.3.0" [plugins] @@ -34,4 +35,5 @@ ktoml-file = { module = "com.akuleshov7:ktoml-file", version.ref = "ktoml" } multiplatform-diff = { module = "io.github.petertrr:kotlin-multiplatform-diff", version.ref = "multiplatform-diff" } square-kotlinpoet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinpoet" } diktat-gradle-plugin = { module = "org.cqfn.diktat:diktat-gradle-plugin", version.ref = "diktat" } -sarif4k = { module = "io.github.detekt.sarif4k:sarif4k", version.ref = "sarif4k" } \ No newline at end of file +sarif4k = { module = "io.github.detekt.sarif4k:sarif4k", version.ref = "sarif4k" } +kotest-assertions-core = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" } diff --git a/save-common/src/commonMain/kotlin/com/saveourtool/save/core/plugin/ExtraFlagsExtractor.kt b/save-common/src/commonMain/kotlin/com/saveourtool/save/core/plugin/ExtraFlagsExtractor.kt index 77827b641..e87f38677 100644 --- a/save-common/src/commonMain/kotlin/com/saveourtool/save/core/plugin/ExtraFlagsExtractor.kt +++ b/save-common/src/commonMain/kotlin/com/saveourtool/save/core/plugin/ExtraFlagsExtractor.kt @@ -72,6 +72,7 @@ internal fun List.filterAndJoinBy(regex: Regex, ending: Char): List - assertTrue(!testResult.debugInfo!!.execCmd!!.contains("chapter")) + reporter.results shouldNot exist { testResult -> + testResult.debugInfo!!.execCmd!!.contains("chapter") } } } diff --git a/save-core/src/commonNonJsTest/kotlin/com/saveourtool/save/core/test/utils/TestUtilsCommon.kt b/save-core/src/commonNonJsTest/kotlin/com/saveourtool/save/core/test/utils/TestUtilsCommon.kt index db916abb4..7d614fa87 100644 --- a/save-core/src/commonNonJsTest/kotlin/com/saveourtool/save/core/test/utils/TestUtilsCommon.kt +++ b/save-core/src/commonNonJsTest/kotlin/com/saveourtool/save/core/test/utils/TestUtilsCommon.kt @@ -17,6 +17,7 @@ import com.saveourtool.save.core.result.Fail import com.saveourtool.save.core.result.Ignored import com.saveourtool.save.core.result.Pass import com.saveourtool.save.reporter.test.TestReporter +import io.kotest.matchers.types.shouldBeTypeOf import okio.Path @@ -79,7 +80,7 @@ fun runTestsWithDiktat( if (test.status is Ignored) { assertEquals(Ignored("Excluded by configuration"), test.status) } else { - assertTrue(test.status is Pass) + test.status.shouldBeTypeOf() } } } diff --git a/save-plugins/warn-plugin/src/commonMain/kotlin/com/saveourtool/save/plugin/warn/WarnPlugin.kt b/save-plugins/warn-plugin/src/commonMain/kotlin/com/saveourtool/save/plugin/warn/WarnPlugin.kt index 96ff1ee2f..7318d154d 100644 --- a/save-plugins/warn-plugin/src/commonMain/kotlin/com/saveourtool/save/plugin/warn/WarnPlugin.kt +++ b/save-plugins/warn-plugin/src/commonMain/kotlin/com/saveourtool/save/plugin/warn/WarnPlugin.kt @@ -79,7 +79,7 @@ class WarnPlugin( // // In case, when user doesn't want to use directory mode, he needs simply not to pass [wildCardInDirectoryMode] and it will be null return warnPluginConfig.wildCardInDirectoryMode?.let { - handleTestFile(files.map { it.test }.toList(), warnPluginConfig, generalConfig, batchSeparator).asSequence() + handleTestFile(files.map { it.test }.toList(), warnPluginConfig, generalConfig, batchSeparator) } ?: run { files.chunked(batchSize).flatMap { chunk -> handleTestFile(chunk.map { it.test }, warnPluginConfig, generalConfig, batchSeparator)