1
0
Fork 0
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:
Evgenii Kozlov 2022-07-18 17:54:08 +03:00 committed by GitHub
parent b4954c2c5e
commit 8b0c8a32e6
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 89 additions and 3 deletions

View file

@ -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()
)
}
}

View file

@ -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)
}
}