diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e2ec9d5d..32ea57ed 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,7 +11,7 @@ android { versionName = "1.0" } - packagingOptions { + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } diff --git a/app/src/test/java/com/droidknights/app2023/ExampleUnitTest.kt b/app/src/test/java/com/droidknights/app2023/ExampleUnitTest.kt index 79ef4251..dcbfcaca 100644 --- a/app/src/test/java/com/droidknights/app2023/ExampleUnitTest.kt +++ b/app/src/test/java/com/droidknights/app2023/ExampleUnitTest.kt @@ -1,17 +1,15 @@ package com.droidknights.app2023 -import org.junit.Test - -import org.junit.Assert.* +import io.kotest.core.spec.style.StringSpec +import io.kotest.matchers.shouldBe /** * Example local unit test, which will execute on the development machine (host). * * See [testing documentation](http://d.android.com/tools/testing). */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) +class ExampleUnitTest : StringSpec({ + "addition is correct" { + 4 shouldBe 2 + 2 } -} \ No newline at end of file +}) diff --git a/build-logic/src/main/kotlin/com/droidknights/app2023/HiltKotlin.kt b/build-logic/src/main/kotlin/com/droidknights/app2023/HiltKotlin.kt index 00c6d63b..e4802f3e 100644 --- a/build-logic/src/main/kotlin/com/droidknights/app2023/HiltKotlin.kt +++ b/build-logic/src/main/kotlin/com/droidknights/app2023/HiltKotlin.kt @@ -23,4 +23,4 @@ internal class HiltKotlinPlugin : Plugin { configureHiltKotlin() } } -} \ No newline at end of file +} diff --git a/build-logic/src/main/kotlin/com/droidknights/app2023/KotestAndroid.kt b/build-logic/src/main/kotlin/com/droidknights/app2023/KotestAndroid.kt new file mode 100644 index 00000000..5e7a677f --- /dev/null +++ b/build-logic/src/main/kotlin/com/droidknights/app2023/KotestAndroid.kt @@ -0,0 +1,17 @@ +package com.droidknights.app2023 + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies + +internal fun Project.configureKotestAndroid() { + configureKotest() + configureJUnitAndroid() +} + +internal fun Project.configureJUnitAndroid() { + androidExtension.apply { + testOptions { + unitTests.all { it.useJUnitPlatform() } + } + } +} diff --git a/build-logic/src/main/kotlin/com/droidknights/app2023/KotestKotlin.kt b/build-logic/src/main/kotlin/com/droidknights/app2023/KotestKotlin.kt new file mode 100644 index 00000000..5a26c96f --- /dev/null +++ b/build-logic/src/main/kotlin/com/droidknights/app2023/KotestKotlin.kt @@ -0,0 +1,21 @@ +package com.droidknights.app2023 + +import org.gradle.api.Project +import org.gradle.api.tasks.testing.Test +import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.withType + +internal fun Project.configureKotest() { + configureJUnit() + val libs = extensions.libs + dependencies { + "testImplementation"(libs.findLibrary("kotest.runner").get()) + "testImplementation"(libs.findLibrary("kotest.assertions").get()) + } +} + +internal fun Project.configureJUnit() { + tasks.withType().configureEach { + useJUnitPlatform() + } +} diff --git a/build-logic/src/main/kotlin/com/droidknights/app2023/KotlinAndroid.kt b/build-logic/src/main/kotlin/com/droidknights/app2023/KotlinAndroid.kt index d223d052..7623d024 100644 --- a/build-logic/src/main/kotlin/com/droidknights/app2023/KotlinAndroid.kt +++ b/build-logic/src/main/kotlin/com/droidknights/app2023/KotlinAndroid.kt @@ -4,9 +4,7 @@ package com.droidknights.app2023 import org.gradle.api.JavaVersion import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.provideDelegate import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.tasks.KotlinCompile diff --git a/build-logic/src/main/kotlin/droidknights.android.application.gradle.kts b/build-logic/src/main/kotlin/droidknights.android.application.gradle.kts index deac6f7d..7115aa27 100644 --- a/build-logic/src/main/kotlin/droidknights.android.application.gradle.kts +++ b/build-logic/src/main/kotlin/droidknights.android.application.gradle.kts @@ -1,4 +1,5 @@ import com.droidknights.app2023.configureHiltAndroid +import com.droidknights.app2023.configureKotestAndroid import com.droidknights.app2023.configureKotlinAndroid plugins { @@ -7,3 +8,4 @@ plugins { configureKotlinAndroid() configureHiltAndroid() +configureKotestAndroid() diff --git a/build-logic/src/main/kotlin/droidknights.kotlin.library.gradle.kts b/build-logic/src/main/kotlin/droidknights.kotlin.library.gradle.kts index 8acebd59..23c7f290 100644 --- a/build-logic/src/main/kotlin/droidknights.kotlin.library.gradle.kts +++ b/build-logic/src/main/kotlin/droidknights.kotlin.library.gradle.kts @@ -1,3 +1,4 @@ +import com.droidknights.app2023.configureKotest import com.droidknights.app2023.configureKotlin plugins { @@ -6,3 +7,4 @@ plugins { } configureKotlin() +configureKotest() diff --git a/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Theme.kt b/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Theme.kt index dde71a54..b0f6f4f1 100644 --- a/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Theme.kt +++ b/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Theme.kt @@ -26,7 +26,8 @@ private val LightColorScheme = lightColorScheme( secondary = PurpleGrey40, tertiary = Pink40 - /* Other default colors to override +/* + Other default colors to override background = Color(0xFFFFFBFE), surface = Color(0xFFFFFBFE), onPrimary = Color.White, @@ -34,7 +35,7 @@ private val LightColorScheme = lightColorScheme( onTertiary = Color.White, onBackground = Color(0xFF1C1B1F), onSurface = Color(0xFF1C1B1F), - */ +*/ ) @Composable @@ -42,7 +43,7 @@ fun DroidKnights2023Theme( darkTheme: Boolean = isSystemInDarkTheme(), // Dynamic color is available on Android 12+ dynamicColor: Boolean = true, - content: @Composable () -> Unit + content: @Composable () -> Unit, ) { val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { @@ -67,4 +68,4 @@ fun DroidKnights2023Theme( typography = Typography, content = content ) -} \ No newline at end of file +} diff --git a/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Type.kt b/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Type.kt index 2e8105d8..017cbb2c 100644 --- a/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Type.kt +++ b/core/designsystem/src/main/java/com/droidknights/app2023/core/designsystem/theme/Type.kt @@ -15,7 +15,8 @@ val Typography = Typography( lineHeight = 24.sp, letterSpacing = 0.5.sp ) - /* Other default text styles to override +/* + Other default text styles to override titleLarge = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, @@ -30,5 +31,5 @@ val Typography = Typography( lineHeight = 16.sp, letterSpacing = 0.5.sp ) - */ -) \ No newline at end of file +*/ +) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a33d34db..7946e2f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ junit4 = "4.13.2" kotlin = "1.8.21" androidxTestExt = "1.1.4" androidxEspresso = "3.5.0" +kotest = "5.6.2" # https://github.com/detekt/detekt detekt = "1.23.0" @@ -45,6 +46,8 @@ junit4 = { group = "junit", name = "junit", version.ref = "junit4" } androidx-test-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExt" } androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } inject = "javax.inject:javax.inject:1" +kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" } +kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" } # verify verify-detektFormatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } @@ -60,4 +63,4 @@ android-library = { id = "com.android.library", version.ref = "androidGradlePlug kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } -verify-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } \ No newline at end of file +verify-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }