Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PM-16809] Fix remind me later date #4526

Merged
merged 4 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import com.x8bit.bitwarden.ui.platform.base.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.update
import kotlinx.parcelize.Parcelize
import java.time.ZonedDateTime
import javax.inject.Inject

private const val KEY_STATE = "state"
Expand Down Expand Up @@ -60,7 +59,7 @@ class NewDeviceNoticeEmailAccessViewModel @Inject constructor(
authRepository.setNewDeviceNoticeState(
NewDeviceNoticeState(
displayStatus = displayStatus,
lastSeenDate = ZonedDateTime.now(),
lastSeenDate = null,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't there be a test for this?

),
)
sendEvent(NewDeviceNoticeEmailAccessEvent.NavigateBackToVault)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import com.x8bit.bitwarden.ui.platform.base.util.asText
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.update
import kotlinx.parcelize.Parcelize
import java.time.Clock
import java.time.ZonedDateTime
import javax.inject.Inject

/**
Expand All @@ -32,6 +34,7 @@ class NewDeviceNoticeTwoFactorViewModel @Inject constructor(
val authRepository: AuthRepository,
val environmentRepository: EnvironmentRepository,
val featureFlagManager: FeatureFlagManager,
private val clock: Clock,
) : BaseViewModel<
NewDeviceNoticeTwoFactorState,
NewDeviceNoticeTwoFactorEvent,
Expand Down Expand Up @@ -79,7 +82,7 @@ class NewDeviceNoticeTwoFactorViewModel @Inject constructor(
authRepository.setNewDeviceNoticeState(
NewDeviceNoticeState(
displayStatus = NewDeviceNoticeDisplayStatus.HAS_SEEN,
lastSeenDate = null,
lastSeenDate = ZonedDateTime.now(clock),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿ‘

),
)
sendEvent(NewDeviceNoticeTwoFactorEvent.NavigateBackToVault)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import io.mockk.every
import io.mockk.just
import io.mockk.mockk
import io.mockk.runs
import io.mockk.verify
import kotlinx.coroutines.test.runTest
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
Expand Down Expand Up @@ -61,6 +62,14 @@ class NewDeviceNoticeEmailAccessViewModelTest : BaseViewModelTest() {
NewDeviceNoticeEmailAccessEvent.NavigateBackToVault,
awaitItem(),
)
verify(exactly = 1) {
authRepository.setNewDeviceNoticeState(
NewDeviceNoticeState(
displayStatus = NewDeviceNoticeDisplayStatus.CAN_ACCESS_EMAIL_PERMANENT,
lastSeenDate = null,
),
)
}
}
}

Expand All @@ -77,6 +86,14 @@ class NewDeviceNoticeEmailAccessViewModelTest : BaseViewModelTest() {
NewDeviceNoticeEmailAccessEvent.NavigateBackToVault,
awaitItem(),
)
verify(exactly = 1) {
authRepository.setNewDeviceNoticeState(
NewDeviceNoticeState(
displayStatus = NewDeviceNoticeDisplayStatus.CAN_ACCESS_EMAIL,
lastSeenDate = null,
),
)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,19 @@ import com.x8bit.bitwarden.ui.auth.feature.newdevicenotice.NewDeviceNoticeTwoFac
import com.x8bit.bitwarden.ui.auth.feature.newdevicenotice.NewDeviceNoticeTwoFactorDialogState.TurnOnTwoFactorDialog
import com.x8bit.bitwarden.ui.platform.base.BaseViewModelTest
import io.mockk.every
import io.mockk.just
import io.mockk.mockk
import io.mockk.runs
import io.mockk.verify
import kotlinx.coroutines.test.runTest
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import java.time.Clock
import java.time.Instant
import java.time.ZoneOffset
import java.time.ZonedDateTime

class NewDeviceNoticeTwoFactorViewModelTest : BaseViewModelTest() {
private val environmentRepository = FakeEnvironmentRepository()
private val authRepository = mockk<AuthRepository> {
every { getNewDeviceNoticeState() } returns NewDeviceNoticeState(
displayStatus = NewDeviceNoticeDisplayStatus.HAS_NOT_SEEN,
lastSeenDate = null,
)
every { setNewDeviceNoticeState(any()) } just runs
}
private val authRepository = mockk<AuthRepository>(relaxed = true)

private val featureFlagManager = mockk<FeatureFlagManager>(relaxed = true) {
every { getFeatureFlag(FlagKey.NewDevicePermanentDismiss) } returns false
Expand Down Expand Up @@ -109,6 +106,14 @@ class NewDeviceNoticeTwoFactorViewModelTest : BaseViewModelTest() {
NewDeviceNoticeTwoFactorEvent.NavigateBackToVault,
awaitItem(),
)
verify(exactly = 1) {
authRepository.setNewDeviceNoticeState(
NewDeviceNoticeState(
displayStatus = NewDeviceNoticeDisplayStatus.HAS_SEEN,
lastSeenDate = ZonedDateTime.now(FIXED_CLOCK),
),
)
}
}
}

Expand Down Expand Up @@ -172,6 +177,7 @@ class NewDeviceNoticeTwoFactorViewModelTest : BaseViewModelTest() {
authRepository = authRepository,
environmentRepository = environmentRepository,
featureFlagManager = featureFlagManager,
clock = FIXED_CLOCK,
)
}

Expand All @@ -180,3 +186,8 @@ private val DEFAULT_STATE =
shouldShowRemindMeLater = true,
dialogState = null,
)

private val FIXED_CLOCK: Clock = Clock.fixed(
Instant.parse("2023-10-27T12:00:00Z"),
ZoneOffset.UTC,
)