PM-17650 Implement custom tool tip state to prevent tool tips from dismissing. (#4637)

This commit is contained in:
Dave Severns
2025-01-28 15:20:15 +00:00
committed by GitHub
parent b2c4fbb593
commit 7a25aafc23
15 changed files with 224 additions and 25 deletions
@@ -203,6 +203,23 @@ class DebugMenuRepositoryTest {
}
assertTrue(lambdaHasBeenCalled)
}
@Test
fun `resetCoachMarkTourStatuses calls settings disk source setting values back to null`() {
every {
mockSettingsDiskSource.storeShouldShowGeneratorCoachMark(shouldShow = any())
} just runs
every {
mockSettingsDiskSource.storeShouldShowAddLoginCoachMark(shouldShow = any())
} just runs
debugMenuRepository.resetCoachMarkTourStatuses()
verify(exactly = 1) {
mockSettingsDiskSource.storeShouldShowGeneratorCoachMark(shouldShow = null)
mockSettingsDiskSource.storeShouldShowAddLoginCoachMark(shouldShow = null)
}
}
}
private const val TEST_STRING_VALUE = "test"
@@ -89,7 +89,7 @@ class DebugMenuScreenTest : BaseComposeTest() {
.onNodeWithText("Email Verification", ignoreCase = true)
.performClick()
verify {
verify(exactly = 1) {
viewModel.trySendAction(
DebugMenuAction.UpdateFeatureFlag(
FlagKey.EmailVerification,
@@ -106,7 +106,7 @@ class DebugMenuScreenTest : BaseComposeTest() {
.performScrollTo()
.performClick()
verify { viewModel.trySendAction(DebugMenuAction.ResetFeatureFlagValues) }
verify(exactly = 1) { viewModel.trySendAction(DebugMenuAction.ResetFeatureFlagValues) }
}
@Test
@@ -124,7 +124,7 @@ class DebugMenuScreenTest : BaseComposeTest() {
.assertIsEnabled()
.performClick()
verify { viewModel.trySendAction(DebugMenuAction.RestartOnboarding) }
verify(exactly = 1) { viewModel.trySendAction(DebugMenuAction.RestartOnboarding) }
}
@Test
@@ -161,7 +161,7 @@ class DebugMenuScreenTest : BaseComposeTest() {
.assertIsEnabled()
.performClick()
verify { viewModel.trySendAction(DebugMenuAction.RestartOnboardingCarousel) }
verify(exactly = 1) { viewModel.trySendAction(DebugMenuAction.RestartOnboardingCarousel) }
}
@Test
@@ -182,4 +182,14 @@ class DebugMenuScreenTest : BaseComposeTest() {
verify(exactly = 0) { viewModel.trySendAction(DebugMenuAction.RestartOnboardingCarousel) }
}
@Test
fun `reset all coach mark tours should send ResetCoachMarkTourStatuses action`() {
composeTestRule
.onNodeWithText("Reset all coach mark tours")
.performScrollTo()
.performClick()
verify(exactly = 1) { viewModel.trySendAction(DebugMenuAction.ResetCoachMarkTourStatuses) }
}
}
@@ -78,14 +78,16 @@ class DebugMenuViewModelTest : BaseViewModelTest() {
viewModel.trySendAction(
DebugMenuAction.UpdateFeatureFlag(FlagKey.EmailVerification, false),
)
verify { mockDebugMenuRepository.updateFeatureFlag(FlagKey.EmailVerification, false) }
verify(exactly = 1) {
mockDebugMenuRepository.updateFeatureFlag(FlagKey.EmailVerification, false)
}
}
@Test
fun `handleResetOnboardingStatus should reset the onboarding status`() {
val viewModel = createViewModel()
viewModel.trySendAction(DebugMenuAction.RestartOnboarding)
verify { mockDebugMenuRepository.resetOnboardingStatusForCurrentUser() }
verify(exactly = 1) { mockDebugMenuRepository.resetOnboardingStatusForCurrentUser() }
}
@Suppress("MaxLineLength")
@@ -93,12 +95,21 @@ class DebugMenuViewModelTest : BaseViewModelTest() {
fun `handleResetOnboardingCarousel should reset the onboarding carousel and update user state pending account action`() {
val viewModel = createViewModel()
viewModel.trySendAction(DebugMenuAction.RestartOnboardingCarousel)
verify {
verify(exactly = 1) {
mockDebugMenuRepository.modifyStateToShowOnboardingCarousel(any())
mockAuthRepository.hasPendingAccountAddition = true
}
}
@Test
fun `handleResetCoachMarkTourStatuses should call repository to reset values`() {
val viewModel = createViewModel()
viewModel.trySendAction(DebugMenuAction.ResetCoachMarkTourStatuses)
verify(exactly = 1) {
mockDebugMenuRepository.resetCoachMarkTourStatuses()
}
}
private fun createViewModel(): DebugMenuViewModel = DebugMenuViewModel(
featureFlagManager = mockFeatureFlagManager,
debugMenuRepository = mockDebugMenuRepository,