From e67a143474e465cee7ce35946283d45636bce768 Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Wed, 2 Apr 2025 17:12:36 -0400 Subject: [PATCH] [PM-19813] Migrate BaseServiceTest to Network module and enable test fixtures (#4967) --- app/build.gradle.kts | 3 ++ .../network/service/AccountsServiceTest.kt | 2 +- .../service/AuthRequestsServiceTest.kt | 2 +- .../network/service/DevicesServiceTest.kt | 2 +- .../service/HaveIBeenPwnedServiceTest.kt | 2 +- .../network/service/IdentityServiceTest.kt | 2 +- .../service/NewAuthRequestServiceTest.kt | 2 +- .../service/OrganizationServiceTest.kt | 2 +- .../service/DigitalAssetLinkServiceTest.kt | 2 +- .../network/service/ConfigServiceTest.kt | 2 +- .../network/service/EventServiceTest.kt | 2 +- .../network/service/PushServiceTest.kt | 2 +- .../network/service/CiphersServiceTest.kt | 2 +- .../network/service/DownloadServiceTest.kt | 2 +- .../network/service/FoldersServiceTest.kt | 2 +- .../network/service/SendsServiceTest.kt | 2 +- .../network/service/SyncServiceTest.kt | 8 ++--- authenticator/build.gradle.kts | 3 ++ .../data/platform/base/BaseServiceTest.kt | 35 ------------------- .../network/service/ConfigServiceTest.kt | 2 +- detekt-config.yml | 2 +- gradle.properties | 1 + network/build.gradle.kts | 25 +++++++++++-- .../network}/base/BaseServiceTest.kt | 2 +- 24 files changed, 52 insertions(+), 59 deletions(-) delete mode 100644 authenticator/src/test/java/com/bitwarden/authenticator/data/platform/base/BaseServiceTest.kt rename {app/src/test/java/com/x8bit/bitwarden/data/platform => network/src/testFixtures/kotlin/com/bitwarden/network}/base/BaseServiceTest.kt (95%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index be24be2f72..9c0a48748f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -270,6 +270,9 @@ dependencies { standardImplementation(libs.google.firebase.crashlytics) standardImplementation(libs.google.play.review) + // Pull in test fixtures from other modules + testImplementation(testFixtures(project(":network"))) + testImplementation(libs.androidx.compose.ui.test) testImplementation(libs.google.hilt.android.testing) testImplementation(platform(libs.junit.bom)) diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceTest.kt index 7ee7291f4c..c1e9702f44 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceTest.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAccountsApi import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedKeyConnectorApi import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedAccountsApi @@ -14,7 +15,6 @@ import com.x8bit.bitwarden.data.auth.datasource.network.model.ResendEmailRequest import com.x8bit.bitwarden.data.auth.datasource.network.model.ResendNewDeviceOtpRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.ResetPasswordRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.SetPasswordRequestJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AuthRequestsServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AuthRequestsServiceTest.kt index 4a23456bd3..2818f01da1 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AuthRequestsServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AuthRequestsServiceTest.kt @@ -1,9 +1,9 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAuthRequestsApi import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/DevicesServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/DevicesServiceTest.kt index 3faf2531c6..d77017332d 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/DevicesServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/DevicesServiceTest.kt @@ -1,10 +1,10 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedDevicesApi import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedDevicesApi import com.x8bit.bitwarden.data.auth.datasource.network.model.TrustedDeviceKeysResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/HaveIBeenPwnedServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/HaveIBeenPwnedServiceTest.kt index 1dc25d3b74..c1c23bd5df 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/HaveIBeenPwnedServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/HaveIBeenPwnedServiceTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.HaveIBeenPwnedApi -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceTest.kt index 306881b65f..bc9f3e3280 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceTest.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedIdentityApi import com.x8bit.bitwarden.data.auth.datasource.network.model.GetTokenResponseJson import com.x8bit.bitwarden.data.auth.datasource.network.model.IdentityTokenAuthModel @@ -20,7 +21,6 @@ import com.x8bit.bitwarden.data.auth.datasource.network.model.TwoFactorAuthMetho import com.x8bit.bitwarden.data.auth.datasource.network.model.UserDecryptionOptionsJson import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifyEmailTokenRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifyEmailTokenResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import com.x8bit.bitwarden.data.platform.util.DeviceModelProvider import io.mockk.every import io.mockk.mockk diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/NewAuthRequestServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/NewAuthRequestServiceTest.kt index 6600050dc0..989c0f5667 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/NewAuthRequestServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/NewAuthRequestServiceTest.kt @@ -1,11 +1,11 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAuthRequestsApi import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedAuthRequestsApi import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestTypeJson import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/OrganizationServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/OrganizationServiceTest.kt index 27e7f8e213..d95627f7e8 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/OrganizationServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/datasource/network/service/OrganizationServiceTest.kt @@ -1,13 +1,13 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedOrganizationApi import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedOrganizationApi import com.x8bit.bitwarden.data.auth.datasource.network.model.OrganizationAutoEnrollStatusResponseJson import com.x8bit.bitwarden.data.auth.datasource.network.model.OrganizationDomainSsoDetailsResponseJson import com.x8bit.bitwarden.data.auth.datasource.network.model.OrganizationKeysResponseJson import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifiedOrganizationDomainSsoDetailsResponse -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/service/DigitalAssetLinkServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/service/DigitalAssetLinkServiceTest.kt index 9c2a06d809..b096aa9baf 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/service/DigitalAssetLinkServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/service/DigitalAssetLinkServiceTest.kt @@ -1,8 +1,8 @@ package com.x8bit.bitwarden.data.autofill.fido2.datasource.network.service +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.autofill.fido2.datasource.network.api.DigitalAssetLinkApi import com.x8bit.bitwarden.data.autofill.fido2.datasource.network.model.DigitalAssetLinkResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt index 10a7c1ca96..ddeb571115 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/ConfigServiceTest.kt @@ -1,9 +1,9 @@ package com.x8bit.bitwarden.data.platform.datasource.network.service import com.bitwarden.core.data.util.asSuccess +import com.bitwarden.network.base.BaseServiceTest import com.bitwarden.network.api.ConfigApi import com.bitwarden.network.model.ConfigResponseJson -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.JsonPrimitive import okhttp3.mockwebserver.MockResponse diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/EventServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/EventServiceTest.kt index a7b9d01ecb..241db59df0 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/EventServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/EventServiceTest.kt @@ -1,6 +1,6 @@ package com.x8bit.bitwarden.data.platform.datasource.network.service -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.platform.datasource.network.api.EventApi import com.x8bit.bitwarden.data.platform.datasource.network.model.OrganizationEventJson import com.x8bit.bitwarden.data.platform.manager.model.OrganizationEventType diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/PushServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/PushServiceTest.kt index 198e067b6e..86d9029b55 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/PushServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/network/service/PushServiceTest.kt @@ -1,6 +1,6 @@ package com.x8bit.bitwarden.data.platform.datasource.network.service -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.platform.datasource.network.api.PushApi import com.x8bit.bitwarden.data.platform.datasource.network.model.PushTokenRequest import kotlinx.coroutines.test.runTest diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceTest.kt index 5c03f89818..217e5e2da1 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service import android.net.Uri -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi import com.x8bit.bitwarden.data.vault.datasource.network.api.CiphersApi import com.x8bit.bitwarden.data.vault.datasource.network.model.CreateCipherInOrganizationJsonRequest diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/DownloadServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/DownloadServiceTest.kt index 8977db20a7..2e9e8aaf1b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/DownloadServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/DownloadServiceTest.kt @@ -1,6 +1,6 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.vault.datasource.network.api.DownloadApi import kotlinx.coroutines.test.runTest import okhttp3.mockwebserver.MockResponse diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FoldersServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FoldersServiceTest.kt index 280e11c03e..107dd0258d 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FoldersServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FoldersServiceTest.kt @@ -1,6 +1,6 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.vault.datasource.network.api.FoldersApi import com.x8bit.bitwarden.data.vault.datasource.network.model.FolderJsonRequest import com.x8bit.bitwarden.data.vault.datasource.network.model.SyncResponseJson diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceTest.kt index 25a626130e..43cc366332 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service import android.net.Uri -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi import com.x8bit.bitwarden.data.vault.datasource.network.api.SendsApi import com.x8bit.bitwarden.data.vault.datasource.network.model.CreateFileSendResponse diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SyncServiceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SyncServiceTest.kt index ab024f2860..f17848acd9 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SyncServiceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SyncServiceTest.kt @@ -1,6 +1,6 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service -import com.x8bit.bitwarden.data.platform.base.BaseServiceTest +import com.bitwarden.network.base.BaseServiceTest import com.x8bit.bitwarden.data.vault.datasource.network.api.SyncApi import com.x8bit.bitwarden.data.vault.datasource.network.model.createMockSyncResponse import kotlinx.coroutines.test.runTest @@ -100,7 +100,7 @@ private const val SYNC_SUCCESS_JSON = """ "familySponsorshipLastSyncDate": "2023-10-27T12:00:00.00Z", "name": "mockName-1", "useApi": false, - "familySponsorshipValidUntil": "2023-10-27T12:00:00.00Z", + "familySponsorshipValidUntil": "2023-10-27T12:00:00.00Z", "status": 1 } ], @@ -175,7 +175,7 @@ private const val SYNC_SUCCESS_JSON = """ "familySponsorshipLastSyncDate": "2023-10-27T12:00:00.00Z", "name": "mockName-1", "useApi": false, - "familySponsorshipValidUntil": "2023-10-27T12:00:00.00Z", + "familySponsorshipValidUntil": "2023-10-27T12:00:00.00Z", "status": 1 } ] @@ -364,5 +364,5 @@ private const val SYNC_SUCCESS_JSON = """ "expirationDate": "2023-10-27T12:00:00.00Z" } ] -} +} """ diff --git a/authenticator/build.gradle.kts b/authenticator/build.gradle.kts index 572f831a60..06474c0e3a 100644 --- a/authenticator/build.gradle.kts +++ b/authenticator/build.gradle.kts @@ -205,6 +205,9 @@ dependencies { debugImplementation(libs.androidx.compose.ui.test.manifest) debugImplementation(libs.androidx.compose.ui.tooling) + // Pull in test fixtures from other modules. + testImplementation(testFixtures(project(":network"))) + testImplementation(libs.androidx.compose.ui.test) testImplementation(libs.google.hilt.android.testing) testImplementation(platform(libs.junit.bom)) diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/base/BaseServiceTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/base/BaseServiceTest.kt deleted file mode 100644 index 7934661b70..0000000000 --- a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/base/BaseServiceTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.bitwarden.authenticator.data.platform.base - -import com.bitwarden.core.di.CoreModule -import com.bitwarden.network.core.NetworkResultCallAdapterFactory -import okhttp3.HttpUrl -import okhttp3.MediaType.Companion.toMediaType -import okhttp3.mockwebserver.MockWebServer -import org.junit.jupiter.api.AfterEach -import retrofit2.Retrofit -import retrofit2.converter.kotlinx.serialization.asConverterFactory - -/** - * Base class for service tests. Provides common mock web server and retrofit setup. - */ -abstract class BaseServiceTest { - - protected val json = CoreModule.providesJson() - - protected val server = MockWebServer().apply { start() } - - protected val url: HttpUrl = server.url("/") - - protected val urlPrefix: String get() = "http://${server.hostName}:${server.port}" - - protected val retrofit: Retrofit = Retrofit.Builder() - .baseUrl(url.toString()) - .addCallAdapterFactory(NetworkResultCallAdapterFactory()) - .addConverterFactory(json.asConverterFactory("application/json".toMediaType())) - .build() - - @AfterEach - fun after() { - server.shutdown() - } -} diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt index 0f9ac99dc3..8f1e28ae32 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/data/platform/datasource/network/service/ConfigServiceTest.kt @@ -1,8 +1,8 @@ package com.bitwarden.authenticator.data.platform.datasource.network.service -import com.bitwarden.authenticator.data.platform.base.BaseServiceTest import com.bitwarden.core.data.util.asSuccess import com.bitwarden.network.api.ConfigApi +import com.bitwarden.network.base.BaseServiceTest import com.bitwarden.network.model.ConfigResponseJson import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.JsonPrimitive diff --git a/detekt-config.yml b/detekt-config.yml index 1a3b30793a..c26d95384d 100644 --- a/detekt-config.yml +++ b/detekt-config.yml @@ -27,7 +27,7 @@ output-reports: comments: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**ServiceImpl.kt' ] + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**ServiceImpl.kt', '**/testFixtures/**' ] AbsentOrWrongFileLicense: active: false licenseTemplateFile: 'license.template' diff --git a/gradle.properties b/gradle.properties index 8b9673a6a4..e8d3dc2911 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ +android.experimental.enableTestFixturesKotlinSupport=true android.nonTransitiveRClass=true android.useAndroidX=true diff --git a/network/build.gradle.kts b/network/build.gradle.kts index 6d28fe4c0c..0025023edb 100644 --- a/network/build.gradle.kts +++ b/network/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) @@ -28,8 +30,15 @@ android { sourceCompatibility(libs.versions.jvmTarget.get()) targetCompatibility(libs.versions.jvmTarget.get()) } - kotlinOptions { - jvmTarget = libs.versions.jvmTarget.get() + @Suppress("UnstableApiUsage") + testFixtures { + enable = true + } +} + +kotlin { + compilerOptions { + jvmTarget.set(JvmTarget.fromTarget(libs.versions.jvmTarget.get())) } } @@ -52,6 +61,18 @@ dependencies { testImplementation(libs.mockk.mockk) testImplementation(libs.square.okhttp.mockwebserver) testImplementation(libs.square.turbine) + + testFixturesImplementation(project(":core")) + testFixturesImplementation(platform(libs.junit.bom)) + testFixturesRuntimeOnly(libs.junit.platform.launcher) + testFixturesImplementation(libs.junit.junit5) + testFixturesImplementation(libs.junit.vintage) + testFixturesImplementation(libs.kotlinx.serialization) + testFixturesImplementation(libs.square.okhttp) + testFixturesImplementation(platform(libs.square.retrofit.bom)) + testFixturesImplementation(libs.square.retrofit) + testFixturesImplementation(libs.square.retrofit.kotlinx.serialization) + testFixturesImplementation(libs.square.okhttp.mockwebserver) } tasks { diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/base/BaseServiceTest.kt b/network/src/testFixtures/kotlin/com/bitwarden/network/base/BaseServiceTest.kt similarity index 95% rename from app/src/test/java/com/x8bit/bitwarden/data/platform/base/BaseServiceTest.kt rename to network/src/testFixtures/kotlin/com/bitwarden/network/base/BaseServiceTest.kt index dcbd100eb7..5f31899614 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/base/BaseServiceTest.kt +++ b/network/src/testFixtures/kotlin/com/bitwarden/network/base/BaseServiceTest.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.data.platform.base +package com.bitwarden.network.base import com.bitwarden.core.di.CoreModule import com.bitwarden.network.core.NetworkResultCallAdapterFactory