From 35fd4093a62867c39048eed9713ace20e05770a3 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Mon, 10 Aug 2026 19:32:09 -0400 Subject: [PATCH] fix(tests): repair unit tests broken by the new-ui v2 merge The v2 tab-bar UI change (#1209) landed with three stale unit-test expectations that break `./gradlew test`: - BalanceViewModelTest: BalanceViewModel gained chatCoordinator + feedCoordinator constructor params; pass relaxed mocks. - BuildNavGraphForLaunchTest: buildNavGraphForLaunch gained an isNewUi param; pass isNewUi = false (the existing assertions cover the v1 routing). - BuildNavGraphForLaunchTest: AuthState.Unknown is now intentionally grouped with Authenticating and returns null (wait on Loading) rather than routing to OnboardingFlow; update the test to assert that documented behavior. --- .../internal/ui/navigation/BuildNavGraphForLaunchTest.kt | 9 ++++++--- .../app/balance/internal/BalanceViewModelTest.kt | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/flipcash/app/src/test/kotlin/com/flipcash/app/internal/ui/navigation/BuildNavGraphForLaunchTest.kt b/apps/flipcash/app/src/test/kotlin/com/flipcash/app/internal/ui/navigation/BuildNavGraphForLaunchTest.kt index fac2f9d98d..33c18d51dc 100644 --- a/apps/flipcash/app/src/test/kotlin/com/flipcash/app/internal/ui/navigation/BuildNavGraphForLaunchTest.kt +++ b/apps/flipcash/app/src/test/kotlin/com/flipcash/app/internal/ui/navigation/BuildNavGraphForLaunchTest.kt @@ -31,6 +31,7 @@ class BuildNavGraphForLaunchTest { ): LaunchNavGraph? = buildNavGraphForLaunch( state = state, router = FakeRouter(action), + isNewUi = false, deepLink = { deepLink }, ) @@ -122,9 +123,11 @@ class BuildNavGraphForLaunchTest { } @Test - fun `unknown auth state without deeplink navigates to OnboardingFlow`() { - val result = build(AuthState.Unknown)!! - assertIs(result.baseRoutes.single()) + fun `unknown auth state waits on Loading`() { + // Unknown is a transient pre-resolution state, grouped with Authenticating: it returns + // null so the Loading screen stays put until auth resolves. A genuine no-account + // resolves to LoggedOut (which routes to OnboardingFlow), covered separately. + assertNull(build(AuthState.Unknown)) } // -- Onboarding -- diff --git a/apps/flipcash/features/balance/src/test/kotlin/com/flipcash/app/balance/internal/BalanceViewModelTest.kt b/apps/flipcash/features/balance/src/test/kotlin/com/flipcash/app/balance/internal/BalanceViewModelTest.kt index 11e1329b14..30fec12ab6 100644 --- a/apps/flipcash/features/balance/src/test/kotlin/com/flipcash/app/balance/internal/BalanceViewModelTest.kt +++ b/apps/flipcash/features/balance/src/test/kotlin/com/flipcash/app/balance/internal/BalanceViewModelTest.kt @@ -5,8 +5,10 @@ import com.flipcash.app.analytics.StubFlipcashAnalytics import com.flipcash.app.core.AppRoute import com.flipcash.app.core.MainCoroutineRule import com.flipcash.app.core.dispatchers.TestDispatchers +import com.flipcash.app.activityfeed.ActivityFeedCoordinator import com.flipcash.app.funding.PurchaseMethodController import com.flipcash.app.userflags.UserFlagsCoordinator +import com.flipcash.shared.chat.ChatCoordinator import com.flipcash.services.internal.model.thirdparty.OnRampProvider import com.flipcash.services.user.UserManager import io.mockk.coEvery @@ -38,6 +40,8 @@ class BalanceViewModelTest { private val userManager: UserManager = mockk(relaxed = true) private val userFlags: UserFlagsCoordinator = mockk(relaxed = true) private val purchaseMethodController: PurchaseMethodController = mockk(relaxed = true) + private val chatCoordinator: ChatCoordinator = mockk(relaxed = true) + private val feedCoordinator: ActivityFeedCoordinator = mockk(relaxed = true) private lateinit var dispatchers: TestDispatchers @@ -47,6 +51,8 @@ class BalanceViewModelTest { dispatchers = dispatchers, purchaseMethodController = purchaseMethodController, analytics = StubFlipcashAnalytics(), + chatCoordinator = chatCoordinator, + feedCoordinator = feedCoordinator, ) @Test