From a826e82bdc7b8761af35232b5e110b308665d35c Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Mon, 8 Jun 2026 17:32:45 +0200 Subject: [PATCH] build: add kotlinx-datetime, coroutines, turbine, hilt-nav-compose, lifecycle-compose --- app/build.gradle.kts | 13 ++++++++++++- gradle/libs.versions.toml | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cd160c9..8d4639f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -74,7 +74,10 @@ android { } testOptions { - unitTests.all { it.useJUnitPlatform() } + unitTests { + all { it.useJUnitPlatform() } + isReturnDefaultValues = true + } } } @@ -87,6 +90,7 @@ kotlin { dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) @@ -96,10 +100,14 @@ dependencies { implementation(libs.androidx.material3) implementation(libs.hilt.android) + implementation(libs.androidx.hilt.navigation.compose) ksp(libs.hilt.compiler) implementation(libs.androidx.datastore.preferences) + implementation(libs.kotlinx.datetime) + implementation(libs.kotlinx.coroutines.core) + debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) @@ -107,9 +115,12 @@ dependencies { testRuntimeOnly(libs.junit.jupiter.engine) testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.truth) + testImplementation(libs.turbine) + testImplementation(libs.kotlinx.coroutines.test) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(libs.androidx.test.rules) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 758930e..07970f9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,12 @@ junitPlatform = "6.1.0" truth = "1.4.5" androidxJunit = "1.3.0" espressoCore = "3.7.0" +kotlinxDatetime = "0.7.0" +kotlinxCoroutines = "1.10.2" +turbine = "1.2.0" +hiltNavigationCompose = "1.3.0" +lifecycleCompose = "2.10.0" +androidxTestRules = "1.7.0" [libraries] # AndroidX core @@ -53,6 +59,25 @@ truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +# Domain time +kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } + +# Coroutines (transitively pulled by hilt-android, pinned explicit) +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } + +# Test - Flow assertions +turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" } + +# Hilt navigation-compose (for hiltViewModel() in Composables) +androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigationCompose" } + +# Lifecycle compose (for collectAsStateWithLifecycle) +androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycleCompose" } + +# Android tests - GrantPermissionRule +androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } + [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }