Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd84c7bb authored by Abhishek Aggarwal's avatar Abhishek Aggarwal
Browse files

fix: Wait for anonymous Play auth before entering home

parent 6177fa91
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -73,8 +73,7 @@ class LoginViewModel @Inject constructor(
     */
    fun startLoginFlow(clearList: List<StoreType> = listOf()) {
        viewModelScope.launch {
            val authObjectsLocal = storeAuthCoordinator.fetchAuthObjects(clearList)
            authObjects.postValue(authObjectsLocal)
            fetchAndPostAuthObjects(clearList)
        }
    }

@@ -127,8 +126,8 @@ class LoginViewModel @Inject constructor(
    fun initialAnonymousLogin(onUserSaved: () -> Unit) {
        viewModelScope.launch {
            anonymousLoginUseCase()
            fetchAndPostAuthObjects()
            onUserSaved()
            startLoginFlow()
        }
    }

@@ -170,4 +169,9 @@ class LoginViewModel @Inject constructor(
            authObjects.postValue(listOf())
        }
    }

    private suspend fun fetchAndPostAuthObjects(clearList: List<StoreType> = listOf()) {
        val authObjectsLocal = storeAuthCoordinator.fetchAuthObjects(clearList)
        authObjects.postValue(authObjectsLocal)
    }
}
+19 −0
Original line number Diff line number Diff line
@@ -183,4 +183,23 @@ class LoginViewModelTest {
        assert(userSavedCalls == 0)
    }

    @Test
    fun `initialAnonymousLogin fetches auth before navigating home`() = runTest {
        val calls = mutableListOf<String>()

        whenever(anonymousLoginUseCase()).thenAnswer {
            calls.add("saveUser")
            Unit
        }
        whenever(storeAuthCoordinator.fetchAuthObjects(any())).thenAnswer {
            calls.add("fetchAuth")
            emptyList()
        }

        loginViewModel.initialAnonymousLogin {
            calls.add("navigateHome")
        }

        assert(calls == listOf("saveUser", "fetchAuth", "navigateHome"))
    }
}