From 6e3c1a2e0dfb4535eb457ea575a048b2103a75c8 Mon Sep 17 00:00:00 2001 From: OHoussein Date: Tue, 7 Jul 2026 10:53:51 +0200 Subject: [PATCH 1/2] Bump the kotlin-dependencies group across 1 directory with 8 updates Bumps the kotlin-dependencies group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.3.10` | `2.4.0` | | org.jetbrains.kotlin.plugin.compose | `2.3.10` | `2.4.0` | | org.jetbrains.kotlin.plugin.serialization | `2.3.10` | `2.4.0` | | [org.jetbrains.kotlinx:kotlinx-coroutines-core](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` | | [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` | | [org.jetbrains.kotlinx:kotlinx-coroutines-swing](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` | | [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` | | [org.jetbrains.kotlinx:kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) | `0.7.1-0.6.x-compat` | `0.8.0-0.6.x-compat` | Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.3.10 to 2.4.0 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.3.10...v2.4.0) Updates `org.jetbrains.kotlin.plugin.compose` from 2.3.10 to 2.4.0 Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.10 to 2.4.0 Updates `org.jetbrains.kotlinx:kotlinx-coroutines-core` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-swing` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-swing` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlinx:kotlinx-datetime` from 0.7.1-0.6.x-compat to 0.8.0-0.6.x-compat - [Release notes](https://github.com/Kotlin/kotlinx-datetime/releases) - [Changelog](https://github.com/Kotlin/kotlinx-datetime/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kotlin/kotlinx-datetime/compare/v0.7.1-0.6.x-compat...v0.8.0-0.6.x-compat) Updates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.10.2 to 1.11.0 - [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases) - [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md) - [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.10.2...1.11.0) Updates `org.jetbrains.kotlin.plugin.compose` from 2.3.10 to 2.4.0 Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.10 to 2.4.0 --- updated-dependencies: - dependency-name: org.jetbrains.kotlin.plugin.compose dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlin.plugin.compose dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlin.plugin.serialization dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlin.plugin.serialization dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-android dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-android dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-core dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-swing dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-swing dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-test dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-test dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-datetime dependency-version: 0.8.0-0.6.x-compat dependency-type: direct:production update-type: version-update:semver-minor dependency-group: kotlin-dependencies ... Signed-off-by: dependabot[bot] --- .../KotlinMultiplatformLibraryConventionPlugin.kt | 7 ------- gradle/libs.versions.toml | 6 +++--- .../details/CryptoDetailsViewModelTest.kt | 12 +++++------- .../presentation/graph/GraphGridGeneratorTest.kt | 2 +- .../presentation/list/CryptoListViewModelTest.kt | 6 +++--- 5 files changed, 12 insertions(+), 21 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/KotlinMultiplatformLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KotlinMultiplatformLibraryConventionPlugin.kt index 07f93906..588dc189 100644 --- a/build-logic/convention/src/main/kotlin/KotlinMultiplatformLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/KotlinMultiplatformLibraryConventionPlugin.kt @@ -59,16 +59,9 @@ class KotlinMultiplatformLibraryConventionPlugin : Plugin { } } - // extensions.configure { - // namespace = getAndroidNameSpaceFromPath(PACKAGE, path) - // configureKotlinAndroid(this) - // } - extensions.configure { sourceSets.getByName("commonTest").dependencies { implementation(kotlin("test")) - implementation(kotlin("test-annotations-common")) - implementation(kotlin("test-common")) implementation(libs.findLibrary("test.coroutines").get()) implementation(libs.findLibrary("test-turbine").get()) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 38d47fda..4a9652a1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,8 +1,8 @@ [versions] androidGradlePluginVersion = "9.0.1" -kotlin = "2.3.10" -coroutineVersion = "1.10.2" -kotlinDatetime = "0.7.1-0.6.x-compat" +kotlin = "2.4.0" +coroutineVersion = "1.11.0" +kotlinDatetime = "0.8.0-0.6.x-compat" koin = "4.1.1" koinCompose = "4.1.1" koinCore = "4.1.1" diff --git a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/details/CryptoDetailsViewModelTest.kt b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/details/CryptoDetailsViewModelTest.kt index f01f8ff9..a8f5d185 100644 --- a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/details/CryptoDetailsViewModelTest.kt +++ b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/details/CryptoDetailsViewModelTest.kt @@ -47,13 +47,11 @@ class CryptoDetailsViewModelTest { awaitItem().apply { assertNotNull(cryptoDetails) assertIs(status) - cryptoDetails?.let { - assertEquals("bitcoin", it.base.id) - assertEquals("crypto bitcoin", it.base.name) - assertEquals("CR-BITCOIN", it.base.symbol) - assertEquals("SHA-256", it.hashingAlgorithm) - assertEquals("http://home-bitcoin.com", it.homePageUrl) - } + assertEquals("bitcoin", cryptoDetails.base.id) + assertEquals("crypto bitcoin", cryptoDetails.base.name) + assertEquals("CR-BITCOIN", cryptoDetails.base.symbol) + assertEquals("SHA-256", cryptoDetails.hashingAlgorithm) + assertEquals("http://home-bitcoin.com", cryptoDetails.homePageUrl) } } } diff --git a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt index 8c684a22..9a151d0b 100644 --- a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt +++ b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt @@ -5,7 +5,7 @@ import dev.ohoussein.cryptoapp.crypto.domain.model.HistoricalPrice import dev.ohoussein.cryptoapp.crypto.domain.model.defaultLocale import dev.ohoussein.cryptoapp.crypto.presentation.fake.FakePriceFormatter import dev.ohoussein.cryptoapp.crypto.presentation.model.GraphInterval -import kotlinx.datetime.Instant +import kotlin.time.Instant import kotlinx.datetime.TimeZone import kotlin.test.Test import kotlin.test.assertEquals diff --git a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/list/CryptoListViewModelTest.kt b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/list/CryptoListViewModelTest.kt index a2ccffd0..fd3d5fd0 100644 --- a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/list/CryptoListViewModelTest.kt +++ b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/list/CryptoListViewModelTest.kt @@ -46,9 +46,9 @@ class CryptoListViewModelTest { viewModel.state.test { awaitItem().apply { assertNotNull(cryptoList) - assertEquals(5, cryptoList!!.size) + assertEquals(5, cryptoList.size) assertIs(status) - val firstCrypto = cryptoList!!.first() + val firstCrypto = cryptoList.first() assertEquals("70 USD", firstCrypto.price.labelValue.label) assertEquals(70.0, firstCrypto.price.labelValue.value) assertEquals(-2.0, firstCrypto.priceChangePercentIn24h?.value) @@ -77,7 +77,7 @@ class CryptoListViewModelTest { awaitItem().apply { assertIs(status) assertNotNull(cryptoList) - assertEquals(5, cryptoList!!.size) + assertEquals(5, cryptoList.size) } } } From e678fc1581ff380a16dbebd0908254b0a0a1f0a1 Mon Sep 17 00:00:00 2001 From: OHoussein Date: Tue, 7 Jul 2026 10:55:40 +0200 Subject: [PATCH 2/2] Exclude generated resource from coverage --- build.gradle.kts | 1 + .../crypto/presentation/graph/GraphGridGeneratorTest.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4524223b..06e2e0a9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -76,6 +76,7 @@ kover { "*.R", "*.mock", "*.mocks", + "*.generated*" ) annotatedBy("*Generated", "*Composable") } diff --git a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt index 9a151d0b..bf2c65c0 100644 --- a/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt +++ b/shared/crypto/presentation/src/commonTest/kotlin/dev/ohoussein/cryptoapp/crypto/presentation/graph/GraphGridGeneratorTest.kt @@ -5,10 +5,10 @@ import dev.ohoussein.cryptoapp.crypto.domain.model.HistoricalPrice import dev.ohoussein.cryptoapp.crypto.domain.model.defaultLocale import dev.ohoussein.cryptoapp.crypto.presentation.fake.FakePriceFormatter import dev.ohoussein.cryptoapp.crypto.presentation.model.GraphInterval -import kotlin.time.Instant import kotlinx.datetime.TimeZone import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.time.Instant class GraphGridGeneratorTest {