From 42806a4d7c530cb7e1e38db5a9fee217a1d4c3e9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 16 Oct 2024 11:59:34 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../kotlin/com/tangem/common/BaseTestCase.kt | 22 +++++++++++++++++++ .../com/tangem/tests/DetailsScreenTest.kt | 3 --- .../kotlin/com/tangem/tests/StoriesTest.kt | 4 +++- .../DefaultBlockchainSDKFactory.kt | 6 +---- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/androidTest/kotlin/com/tangem/common/BaseTestCase.kt b/app/src/androidTest/kotlin/com/tangem/common/BaseTestCase.kt index 4b3278bc9f..3ff0cba81e 100644 --- a/app/src/androidTest/kotlin/com/tangem/common/BaseTestCase.kt +++ b/app/src/androidTest/kotlin/com/tangem/common/BaseTestCase.kt @@ -1,16 +1,22 @@ package com.tangem.common import android.Manifest +import android.content.Context +import android.util.Log import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.test.espresso.intent.Intents import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import com.kaspersky.components.composesupport.config.withComposeSupport import com.kaspersky.kaspresso.kaspresso.Kaspresso import com.kaspersky.kaspresso.testcases.api.testcase.TestCase +import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.tap.MainActivity import com.tangem.tap.domain.sdk.TangemSdkManager import dagger.hilt.android.testing.HiltAndroidRule +import kotlinx.coroutines.delay +import kotlinx.coroutines.runBlocking import org.junit.Rule import org.junit.rules.RuleChain import org.junit.runner.RunWith @@ -24,6 +30,9 @@ abstract class BaseTestCase : TestCase( @Inject lateinit var tangemSdkManager: TangemSdkManager + @Inject + lateinit var appPreferencesStore: AppPreferencesStore + @get:Rule open val composeTestRule = createAndroidComposeRule() @@ -48,9 +57,22 @@ abstract class BaseTestCase : TestCase( hiltRule.inject() Intents.init() additionalBeforeSection() + + runBlocking { + delay(INIT_DELAY) + } + }.after { + runBlocking { + appPreferencesStore.editData { prefs -> prefs.clear() } + } + additionalAfterSection() Intents.release() } + companion object { + private const val INIT_DELAY = 1000L + } + } \ No newline at end of file diff --git a/app/src/androidTest/kotlin/com/tangem/tests/DetailsScreenTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/DetailsScreenTest.kt index 8c4bd6d3c9..dd86a046cc 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/DetailsScreenTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/DetailsScreenTest.kt @@ -143,9 +143,6 @@ class DetailsScreenTest : BaseTestCase() { } } ComposeScreen.onComposeScreen(composeTestRule) { - step("Assert Link more cards button does not exist") { - linkMoreCardsButton.assertIsNotDisplayed() - } step("Assert Card Settings button is visible") { cardSettingsButton.assertIsDisplayed() } diff --git a/app/src/androidTest/kotlin/com/tangem/tests/StoriesTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/StoriesTest.kt index 9eb88b0075..eab4389f6b 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/StoriesTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/StoriesTest.kt @@ -1,6 +1,7 @@ package com.tangem.tests import android.content.Intent.ACTION_VIEW +import androidx.test.espresso.intent.matcher.UriMatchers import com.tangem.common.BaseTestCase import com.tangem.common.extensions.clickWithAssertion import com.tangem.screens.DisclaimerTestScreen @@ -9,6 +10,7 @@ import com.tangem.tap.features.home.redux.HomeMiddleware.NEW_BUY_WALLET_URL import dagger.hilt.android.testing.HiltAndroidTest import io.github.kakaocup.compose.node.element.ComposeScreen import io.github.kakaocup.kakao.intent.KIntent +import org.hamcrest.Matchers import org.junit.Test @HiltAndroidTest @@ -29,7 +31,7 @@ class StoriesTest : BaseTestCase() { step("Assert: browser opened") { val expectedIntent = KIntent { hasAction(ACTION_VIEW) - hasData(NEW_BUY_WALLET_URL) + hasData { toString().startsWith(NEW_BUY_WALLET_URL) } } expectedIntent.intended() device.uiDevice.pressBack() diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt index 23379f7e5b..9e5dbd53c8 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/DefaultBlockchainSDKFactory.kt @@ -39,10 +39,6 @@ internal class DefaultBlockchainSDKFactory( private val mainScope = CoroutineScope(dispatchers.main) private val walletManagerFactory: Flow = createWalletManagerFactory() - // TODO: [REDACTED_JIRA] - // private val walletManagerFactory: Flow by lazy(LazyThreadSafetyMode.NONE) { - // createWalletManagerFactory() - // } override suspend fun init() { coroutineScope { @@ -59,7 +55,7 @@ internal class DefaultBlockchainSDKFactory( // flow3 = subscribe on feature toggles changes, TODO: [REDACTED_JIRA] transform = walletManagerFactoryCreator::create, ) - .stateIn(scope = mainScope, started = SharingStarted.Eagerly, initialValue = null) + .stateIn(scope = mainScope, started = SharingStarted.Lazily, initialValue = null) } private fun CoroutineScope.updateBlockchainProviderTypes() {