mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
App | Fix | Flaking remaining days count issue after account deletion (#2414)
changed rounding mode + added tests
This commit is contained in:
parent
b4954c2c5e
commit
8b0c8a32e6
2 changed files with 89 additions and 3 deletions
|
@ -43,7 +43,7 @@ class DeletedAccountViewModel(
|
|||
}
|
||||
else -> {
|
||||
date.value = DeletionDate.Later(
|
||||
days = days.toBigDecimal().setScale(0, RoundingMode.UP).toInt()
|
||||
days = days.toBigDecimal().setScale(0, RoundingMode.HALF_EVEN).toInt()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,6 @@ import com.anytypeio.anytype.domain.config.ConfigStorage
|
|||
import com.anytypeio.anytype.presentation.auth.account.DeletedAccountViewModel
|
||||
import com.anytypeio.anytype.presentation.util.CoroutinesTestRule
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
@ -231,4 +229,92 @@ class DeleteAccountViewModelTest {
|
|||
|
||||
verifyZeroInteractions(repo)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `should display 30 days until deletion - when account is deleted today with some extra time added`() {
|
||||
val nowInMillis = System.currentTimeMillis()
|
||||
|
||||
val tenSecondsElapsed = Duration.ofSeconds(10).toMillis()
|
||||
val fiveHoursElapsed = Duration.ofHours(5).toMillis()
|
||||
val tenHoursElapsed = Duration.ofHours(10).toMillis()
|
||||
val extraInMillis = Duration.ofMinutes(1).toMillis()
|
||||
|
||||
val deadlineInMillis = nowInMillis + Duration.ofDays(30).toMillis() + extraInMillis
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + tenSecondsElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + fiveHoursElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + tenHoursElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
verifyZeroInteractions(repo)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `should display 30 days until deletion - when account is deleted today with some extra time removed`() {
|
||||
val nowInMillis = System.currentTimeMillis()
|
||||
|
||||
val tenSecondsElapsed = Duration.ofSeconds(10).toMillis()
|
||||
val fiveHoursElapsed = Duration.ofHours(5).toMillis()
|
||||
val tenHoursElapsed = Duration.ofHours(10).toMillis()
|
||||
val extraInMillis = Duration.ofMinutes(1).toMillis()
|
||||
|
||||
val deadlineInMillis = nowInMillis + Duration.ofDays(30).toMillis() - extraInMillis
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + tenSecondsElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + fiveHoursElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
vm.onStart(
|
||||
deadlineInMillis = deadlineInMillis,
|
||||
nowInMillis = nowInMillis + tenHoursElapsed
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
expected = DeletedAccountViewModel.DeletionDate.Later(30),
|
||||
actual = vm.date.value
|
||||
)
|
||||
|
||||
verifyZeroInteractions(repo)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue