diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml index c2f5272c6d..30d251c287 100644 --- a/.github/workflows/ui-tests.yml +++ b/.github/workflows/ui-tests.yml @@ -5,6 +5,12 @@ on: branches: [ "master" ] workflow_dispatch: + inputs: + suites: + description: "Android test annotations: all or comma-separated simple annotation names" + required: false + default: "all" + type: string concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -81,6 +87,8 @@ jobs: - name: Run UI tests on Android Emulator uses: reactivecircus/android-emulator-runner@v2 + env: + ANDROID_TEST_SUITES: ${{ github.event.inputs.suites || 'all' }} with: api-level: 30 arch: x86_64 @@ -101,7 +109,24 @@ jobs: # Install and run tests ./gradlew installDevDebug - ./gradlew connectedDevDebugAndroidTest + + suites="${ANDROID_TEST_SUITES:-all}" + suites="$(echo "$suites" | tr -d '[:space:]')" + + if [[ -z "$suites" || "$suites" == "all" ]]; then + ./gradlew connectedDevDebugAndroidTest + exit 0 + fi + + IFS=',' read -ra requested_suites <<< "$suites" + for suite in "${requested_suites[@]}"; do + if [[ "$suite" == *.* || ! "$suite" =~ ^[A-Z][A-Za-z0-9]*$ ]]; then + echo "::error::Invalid Android test annotation '$suite'. Use all or comma-separated simple annotation names such as ComposeUi." + exit 1 + fi + + ./gradlew connectedDevDebugAndroidTest -PbitkitAndroidTestAnnotation="$suite" + done - name: Upload UI test report if: always() diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b6fcb3b2da..a39a954096 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,6 +50,45 @@ val e2eBackendEnv = System.getenv("E2E_BACKEND") ?: "local" val e2eHomegateUrlEnv = System.getenv("E2E_HOMEGATE_URL") ?: "http://127.0.0.1:6288" val trezorBridgeEnv = System.getenv("TREZOR_BRIDGE")?.toBoolean()?.toString() ?: "false" val trezorBridgeUrlEnv = System.getenv("TREZOR_BRIDGE_URL") ?: "http://10.0.2.2:21325" +val androidTestAnnotationPackage = "to.bitkit.test.annotations" +val androidTestTaskPrefix = "connectedDevDebug" +val androidTestTaskSuffix = "AndroidTest" +val androidTestAnnotationNames = file("src/androidTest/java/to/bitkit/test/annotations") + .listFiles() + ?.mapNotNull { file -> + file.nameWithoutExtension.takeIf { + file.isFile && + file.extension == "kt" + } + } + ?.sorted() + .orEmpty() +val requestedTaskNames = gradle.startParameter.taskNames.map { it.substringAfterLast(":") } + +fun androidTestTaskName(annotationName: String): String { + return "$androidTestTaskPrefix$annotationName$androidTestTaskSuffix" +} + +val requestedAndroidTestAnnotation = providers.gradleProperty("bitkitAndroidTestAnnotation") + .orNull + ?.trim() + ?.takeIf { it.isNotEmpty() } + ?.also { + require('.' !in it) { + "Use a simple Android test annotation name, e.g. 'ComposeUi'." + } + require(it in androidTestAnnotationNames) { + "Unsupported bitkitAndroidTestAnnotation '$it'. Supported annotations: " + + androidTestAnnotationNames.joinToString(", ") + } + } +val bitkitAndroidTestAnnotationName = requestedAndroidTestAnnotation + ?: requestedTaskNames.firstNotNullOfOrNull { taskName -> + androidTestAnnotationNames.firstOrNull { androidTestTaskName(it) == taskName } + } +val bitkitAndroidTestAnnotation = bitkitAndroidTestAnnotationName?.let { + "$androidTestAnnotationPackage.$it" +} android { namespace = "to.bitkit" @@ -61,6 +100,9 @@ android { versionCode = 181 versionName = "2.2.0" testInstrumentationRunner = "to.bitkit.test.HiltTestRunner" + bitkitAndroidTestAnnotation?.let { + testInstrumentationRunnerArguments["annotation"] = it + } vectorDrawables { useSupportLibrary = true } @@ -367,4 +409,12 @@ tasks.withType().configureEach { jvmArgs("-XX:+EnableDynamicAgentLoading") } +androidTestAnnotationNames.forEach { annotationName -> + tasks.register(androidTestTaskName(annotationName)) { + group = "verification" + description = "Runs devDebug Android tests annotated with '$annotationName'." + dependsOn("connectedDevDebugAndroidTest") + } +} + // endregion diff --git a/app/src/androidTest/java/to/bitkit/data/keychain/KeychainTest.kt b/app/src/androidTest/java/to/bitkit/data/keychain/KeychainTest.kt index 206adabe52..d627c64590 100644 --- a/app/src/androidTest/java/to/bitkit/data/keychain/KeychainTest.kt +++ b/app/src/androidTest/java/to/bitkit/data/keychain/KeychainTest.kt @@ -14,12 +14,16 @@ import org.junit.runner.RunWith import to.bitkit.data.AppDb import to.bitkit.data.entities.ConfigEntity import to.bitkit.test.BaseAndroidTest +import to.bitkit.test.annotations.DeviceIntegration +import to.bitkit.test.annotations.DeviceStorageIntegration import kotlin.test.assertEquals import kotlin.test.assertFailsWith import kotlin.test.assertNull import kotlin.test.assertTrue @RunWith(AndroidJUnit4::class) +@DeviceIntegration +@DeviceStorageIntegration class KeychainTest : BaseAndroidTest() { private val appContext by lazy { ApplicationProvider.getApplicationContext() } diff --git a/app/src/androidTest/java/to/bitkit/services/BlocktankTest.kt b/app/src/androidTest/java/to/bitkit/services/BlocktankTest.kt index dafbce5e2d..2448743149 100644 --- a/app/src/androidTest/java/to/bitkit/services/BlocktankTest.kt +++ b/app/src/androidTest/java/to/bitkit/services/BlocktankTest.kt @@ -15,6 +15,8 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import to.bitkit.env.Env +import to.bitkit.test.annotations.CoreServiceIntegration +import to.bitkit.test.annotations.DeviceIntegration import javax.inject.Inject import kotlin.test.assertEquals import kotlin.test.assertNotEquals @@ -22,6 +24,8 @@ import kotlin.test.assertNotNull import kotlin.test.assertTrue @HiltAndroidTest +@DeviceIntegration +@CoreServiceIntegration class BlocktankTest { @get:Rule var hiltRule = HiltAndroidRule(this) diff --git a/app/src/androidTest/java/to/bitkit/services/OnchainServiceTests.kt b/app/src/androidTest/java/to/bitkit/services/OnchainServiceTests.kt index 706f868725..aaabf6b96d 100644 --- a/app/src/androidTest/java/to/bitkit/services/OnchainServiceTests.kt +++ b/app/src/androidTest/java/to/bitkit/services/OnchainServiceTests.kt @@ -8,11 +8,15 @@ import org.junit.Test import org.junit.runner.RunWith import org.lightningdevkit.ldknode.Network import to.bitkit.models.toDerivationPath +import to.bitkit.test.annotations.CoreServiceIntegration +import to.bitkit.test.annotations.DeviceIntegration import kotlin.test.assertEquals import kotlin.test.assertNotNull import kotlin.test.assertTrue @RunWith(AndroidJUnit4::class) +@DeviceIntegration +@CoreServiceIntegration class OnchainServiceTests { private lateinit var onchainService: OnchainService diff --git a/app/src/androidTest/java/to/bitkit/services/RoutingFeeEstimationTest.kt b/app/src/androidTest/java/to/bitkit/services/RoutingFeeEstimationTest.kt index c707257347..7c2a6fc1e2 100644 --- a/app/src/androidTest/java/to/bitkit/services/RoutingFeeEstimationTest.kt +++ b/app/src/androidTest/java/to/bitkit/services/RoutingFeeEstimationTest.kt @@ -18,6 +18,8 @@ import to.bitkit.data.CacheStore import to.bitkit.data.keychain.Keychain import to.bitkit.env.Env import to.bitkit.repositories.WalletRepo +import to.bitkit.test.annotations.CoreServiceIntegration +import to.bitkit.test.annotations.DeviceIntegration import to.bitkit.utils.LdkError import javax.inject.Inject import kotlin.test.assertEquals @@ -27,6 +29,8 @@ import kotlin.test.assertTrue @HiltAndroidTest @RunWith(AndroidJUnit4::class) +@DeviceIntegration +@CoreServiceIntegration class RoutingFeeEstimationTest { companion object { diff --git a/app/src/androidTest/java/to/bitkit/services/TxBumpingTests.kt b/app/src/androidTest/java/to/bitkit/services/TxBumpingTests.kt index e46347f454..ddec667793 100644 --- a/app/src/androidTest/java/to/bitkit/services/TxBumpingTests.kt +++ b/app/src/androidTest/java/to/bitkit/services/TxBumpingTests.kt @@ -15,6 +15,8 @@ import org.junit.runner.RunWith import to.bitkit.data.keychain.Keychain import to.bitkit.env.Env import to.bitkit.repositories.WalletRepo +import to.bitkit.test.annotations.CoreServiceIntegration +import to.bitkit.test.annotations.DeviceIntegration import javax.inject.Inject import kotlin.test.assertEquals import kotlin.test.assertFalse @@ -23,6 +25,8 @@ import kotlin.test.assertTrue @HiltAndroidTest @RunWith(AndroidJUnit4::class) +@DeviceIntegration +@CoreServiceIntegration class TxBumpingTests { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/services/UtxoSelectionTests.kt b/app/src/androidTest/java/to/bitkit/services/UtxoSelectionTests.kt index e239093ce6..b93fd0da34 100644 --- a/app/src/androidTest/java/to/bitkit/services/UtxoSelectionTests.kt +++ b/app/src/androidTest/java/to/bitkit/services/UtxoSelectionTests.kt @@ -16,6 +16,8 @@ import org.lightningdevkit.ldknode.CoinSelectionAlgorithm import to.bitkit.data.keychain.Keychain import to.bitkit.env.Env import to.bitkit.repositories.WalletRepo +import to.bitkit.test.annotations.CoreServiceIntegration +import to.bitkit.test.annotations.DeviceIntegration import javax.inject.Inject import kotlin.test.assertEquals import kotlin.test.assertFalse @@ -25,6 +27,8 @@ import kotlin.test.fail @HiltAndroidTest @RunWith(AndroidJUnit4::class) +@DeviceIntegration +@CoreServiceIntegration class UtxoSelectionTests { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/test/annotations/ComposeUi.kt b/app/src/androidTest/java/to/bitkit/test/annotations/ComposeUi.kt new file mode 100644 index 0000000000..002476defe --- /dev/null +++ b/app/src/androidTest/java/to/bitkit/test/annotations/ComposeUi.kt @@ -0,0 +1,5 @@ +package to.bitkit.test.annotations + +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) +annotation class ComposeUi diff --git a/app/src/androidTest/java/to/bitkit/test/annotations/CoreServiceIntegration.kt b/app/src/androidTest/java/to/bitkit/test/annotations/CoreServiceIntegration.kt new file mode 100644 index 0000000000..85955c7459 --- /dev/null +++ b/app/src/androidTest/java/to/bitkit/test/annotations/CoreServiceIntegration.kt @@ -0,0 +1,5 @@ +package to.bitkit.test.annotations + +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) +annotation class CoreServiceIntegration diff --git a/app/src/androidTest/java/to/bitkit/test/annotations/DeviceIntegration.kt b/app/src/androidTest/java/to/bitkit/test/annotations/DeviceIntegration.kt new file mode 100644 index 0000000000..7f1bc36653 --- /dev/null +++ b/app/src/androidTest/java/to/bitkit/test/annotations/DeviceIntegration.kt @@ -0,0 +1,5 @@ +package to.bitkit.test.annotations + +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) +annotation class DeviceIntegration diff --git a/app/src/androidTest/java/to/bitkit/test/annotations/DeviceStorageIntegration.kt b/app/src/androidTest/java/to/bitkit/test/annotations/DeviceStorageIntegration.kt new file mode 100644 index 0000000000..f8e6412a4e --- /dev/null +++ b/app/src/androidTest/java/to/bitkit/test/annotations/DeviceStorageIntegration.kt @@ -0,0 +1,5 @@ +package to.bitkit.test.annotations + +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) +annotation class DeviceStorageIntegration diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/wallets/send/SendAmountContentTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/wallets/send/SendAmountContentTest.kt index b0f6392b9a..6be28a235b 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/wallets/send/SendAmountContentTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/wallets/send/SendAmountContentTest.kt @@ -7,10 +7,12 @@ import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test import to.bitkit.models.NodeLifecycleState +import to.bitkit.test.annotations.ComposeUi import to.bitkit.viewmodels.SendMethod import to.bitkit.viewmodels.SendUiState import to.bitkit.viewmodels.previewAmountInputViewModel +@ComposeUi class SendAmountContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/blocks/BlockCardTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/blocks/BlockCardTest.kt index 323ddec06b..876aef7a45 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/blocks/BlockCardTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/blocks/BlockCardTest.kt @@ -5,8 +5,10 @@ import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class BlockCardTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsCardTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsCardTest.kt index 5b7cdafad5..f1e941085e 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsCardTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsCardTest.kt @@ -5,8 +5,10 @@ import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class FactsCardTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsPreviewScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsPreviewScreenTest.kt index 2905c0d7c1..ec9dd7b5bc 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsPreviewScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/facts/FactsPreviewScreenTest.kt @@ -5,8 +5,10 @@ import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class FactsPreviewContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlineCardTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlineCardTest.kt index 457eaa3419..e0a8ebe5b6 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlineCardTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlineCardTest.kt @@ -5,8 +5,10 @@ import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class HeadlineCardTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesEditContentTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesEditContentTest.kt index b3ff9239e0..84e7de8a30 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesEditContentTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesEditContentTest.kt @@ -9,8 +9,10 @@ import org.junit.Rule import org.junit.Test import to.bitkit.models.widget.ArticleModel import to.bitkit.models.widget.HeadlinePreferences +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class HeadlinesEditContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesPreviewContentTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesPreviewContentTest.kt index 12e146a3b5..918ec1d6e7 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesPreviewContentTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/headlines/HeadlinesPreviewContentTest.kt @@ -7,8 +7,10 @@ import org.junit.Rule import org.junit.Test import to.bitkit.models.widget.ArticleModel import to.bitkit.models.widget.HeadlinePreferences +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class HeadlinesPreviewContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherCardTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherCardTest.kt index afdc713360..d3299d0112 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherCardTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherCardTest.kt @@ -9,9 +9,11 @@ import to.bitkit.R import to.bitkit.data.dto.FeeCondition import to.bitkit.models.widget.WeatherDataOption import to.bitkit.models.widget.WeatherPreferences +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.screens.widgets.blocks.WeatherModel import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class WeatherCardTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherEditScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherEditScreenTest.kt index 2854d79746..88efd88952 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherEditScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherEditScreenTest.kt @@ -11,9 +11,11 @@ import to.bitkit.R import to.bitkit.data.dto.FeeCondition import to.bitkit.models.widget.WeatherDataOption import to.bitkit.models.widget.WeatherPreferences +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.screens.widgets.blocks.WeatherModel import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class WeatherEditScreenTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherPreviewScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherPreviewScreenTest.kt index 5804af8363..5c86ad80f2 100644 --- a/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherPreviewScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/screens/widgets/weather/WeatherPreviewScreenTest.kt @@ -9,9 +9,11 @@ import to.bitkit.R import to.bitkit.data.dto.FeeCondition import to.bitkit.models.widget.WeatherDataOption import to.bitkit.models.widget.WeatherPreferences +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.screens.widgets.blocks.WeatherModel import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class WeatherPreviewContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/settings/backups/BackupIntroScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/settings/backups/BackupIntroScreenTest.kt index d3730264e0..03a55f47c3 100644 --- a/app/src/androidTest/java/to/bitkit/ui/settings/backups/BackupIntroScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/settings/backups/BackupIntroScreenTest.kt @@ -5,8 +5,10 @@ import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class BackupIntroScreenTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/settings/quickPay/QuickPaySettingsScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/settings/quickPay/QuickPaySettingsScreenTest.kt index 39fa168f28..1a179f2b0e 100644 --- a/app/src/androidTest/java/to/bitkit/ui/settings/quickPay/QuickPaySettingsScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/settings/quickPay/QuickPaySettingsScreenTest.kt @@ -9,9 +9,11 @@ import dagger.hilt.android.testing.HiltAndroidTest import org.junit.Before import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface @HiltAndroidTest +@ComposeUi class QuickPaySettingsScreenTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/settings/support/ReportIssueScreenTest.kt b/app/src/androidTest/java/to/bitkit/ui/settings/support/ReportIssueScreenTest.kt index d7e9f2c2b7..1174c3d286 100644 --- a/app/src/androidTest/java/to/bitkit/ui/settings/support/ReportIssueScreenTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/settings/support/ReportIssueScreenTest.kt @@ -8,8 +8,10 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performTextInput import org.junit.Rule import org.junit.Test +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.theme.AppThemeSurface +@ComposeUi class ReportIssueContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/sheets/BoostTransactionSheetTest.kt b/app/src/androidTest/java/to/bitkit/ui/sheets/BoostTransactionSheetTest.kt index 60da21a7d0..6e206dd710 100644 --- a/app/src/androidTest/java/to/bitkit/ui/sheets/BoostTransactionSheetTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/sheets/BoostTransactionSheetTest.kt @@ -20,6 +20,7 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import to.bitkit.test.annotations.ComposeUi import to.bitkit.ui.sheets.BoostTransactionContent import to.bitkit.ui.sheets.BoostTransactionTestTags import to.bitkit.ui.sheets.BoostTransactionUiState @@ -28,6 +29,7 @@ import to.bitkit.ui.theme.AppThemeSurface @HiltAndroidTest @RunWith(AndroidJUnit4::class) +@ComposeUi class BoostTransactionContentTest { @get:Rule diff --git a/app/src/androidTest/java/to/bitkit/ui/sheets/NewTransactionSheetViewTest.kt b/app/src/androidTest/java/to/bitkit/ui/sheets/NewTransactionSheetViewTest.kt index 5a7769d36f..796e9f28a9 100644 --- a/app/src/androidTest/java/to/bitkit/ui/sheets/NewTransactionSheetViewTest.kt +++ b/app/src/androidTest/java/to/bitkit/ui/sheets/NewTransactionSheetViewTest.kt @@ -11,8 +11,10 @@ import org.junit.Test import to.bitkit.models.NewTransactionSheetDetails import to.bitkit.models.NewTransactionSheetDirection import to.bitkit.models.NewTransactionSheetType +import to.bitkit.test.annotations.ComposeUi @HiltAndroidTest +@ComposeUi class NewTransactionSheetViewTest { @get:Rule