mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Fix infinite loading circular progress bar after nominating for deletion (#6324)
* fix: infinite loading progress bar after nominating for deletion * add logs for testing * refactor: use globalFileUsage instead of achievement to append in reason Fetching achievements is a time consuming operation and globalFileUsage gives the similar result in optimal time * test(ReasonBuilder): fix tests according to new behavior * refactor: remove logs added for testing * test: await for async getReason method call --------- Co-authored-by: Neel Doshi <neeldoshi147@gmail.com> Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit is contained in:
parent
5d7f42d127
commit
ad7dddaac4
8 changed files with 88 additions and 66 deletions
|
|
@ -5,13 +5,14 @@ import android.content.res.Resources
|
|||
import fr.free.nrw.commons.Media
|
||||
import fr.free.nrw.commons.R
|
||||
import fr.free.nrw.commons.auth.SessionManager
|
||||
import fr.free.nrw.commons.fileusages.GlobalFileUsagesResponse
|
||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
|
||||
import fr.free.nrw.commons.profile.achievements.FeedbackResponse
|
||||
import fr.free.nrw.commons.profile.leaderboard.LeaderboardResponse
|
||||
import fr.free.nrw.commons.profile.leaderboard.UpdateAvatarResponse
|
||||
import fr.free.nrw.commons.utils.ViewUtilWrapper
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.Single
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import media
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
|
@ -58,16 +59,16 @@ class ReasonBuilderTest {
|
|||
PowerMockito.`when`(context?.getString(R.string.user_not_logged_in))
|
||||
.thenReturn("Log-in expired. Please log in again.")
|
||||
|
||||
reasonBuilder!!.getReason(mock(Media::class.java), "test")
|
||||
reasonBuilder!!.getReason(mock(Media::class.java), "test").test().await()
|
||||
verify(sessionManager, times(1))!!.forceLogin(any(Context::class.java))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getReason() {
|
||||
fun getReason() = runTest {
|
||||
`when`(sessionManager?.userName).thenReturn("Testuser")
|
||||
`when`(sessionManager?.doesAccountExist()).thenReturn(true)
|
||||
`when`(okHttpJsonApiClient!!.getAchievements(anyString()))
|
||||
.thenReturn(Single.just(mock(FeedbackResponse::class.java)))
|
||||
`when`(okHttpJsonApiClient!!.getGlobalFileUsages(anyString(), anyInt()))
|
||||
.thenReturn(mock(GlobalFileUsagesResponse::class.java))
|
||||
`when`(okHttpJsonApiClient!!.getLeaderboard(anyString(), anyString(), anyString(), anyString(), anyString()))
|
||||
.thenReturn(Observable.just(mock(LeaderboardResponse::class.java)))
|
||||
`when`(okHttpJsonApiClient!!.setAvatar(anyString(), anyString()))
|
||||
|
|
@ -75,8 +76,8 @@ class ReasonBuilderTest {
|
|||
|
||||
val media = media(filename = "test_file", dateUploaded = Date())
|
||||
|
||||
reasonBuilder!!.getReason(media, "test")
|
||||
reasonBuilder!!.getReason(media, "test").test().await()
|
||||
verify(sessionManager, times(0))!!.forceLogin(any(Context::class.java))
|
||||
verify(okHttpJsonApiClient, times(1))!!.getAchievements(anyString())
|
||||
verify(okHttpJsonApiClient, times(1))!!.getGlobalFileUsages(anyString(), anyInt())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue