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

Commit 1609eb48 authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

fix:4025: getAppDetails return uncomplete Application obects.

parent ccb55055
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import foundation.e.apps.data.cleanapk.CleanApkSearchHelper
import foundation.e.apps.data.cleanapk.data.categories.Categories
import foundation.e.apps.data.cleanapk.data.search.Search
import foundation.e.apps.data.enums.Source
import foundation.e.apps.data.enums.Type
import retrofit2.Response
import javax.inject.Inject

@@ -87,7 +88,16 @@ class CleanApkPwaRepository @Inject constructor(
        val apps = cleanApkRetrofit.checkAvailablePackages(listOf(packageName), CleanApkRetrofit.APP_TYPE_PWA)
        val app = apps.body()?.apps?.firstOrNull() ?: return Application()
        val response = cleanApkRetrofit.getAppOrPWADetailsByID(app._id, null, null)
        return response.body()?.app ?: return Application()
        return response.body()?.app?.let {
            if (it.is_pwa) {
                it.copy(
                    source = Source.PWA,
                    type = Type.PWA
                )
            } else {
                it
            }
        } ?: Application()
    }

    override suspend fun getSearchResults(pattern: String): List<Application> {
+1 −23
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ class CleanApkAppsRepositoryTest {
    }

    @Test
    fun `getAppDetails set source=OPEN_SOURCE for not pwa App`() = runTest {
    fun `getAppDetails set source=OPEN_SOURCE`() = runTest {
        val packageName = "com.example.app"
        val appId = "id-123"
        val expectedApp = Application(_id = appId, name = "Example", is_pwa = false, source = Source.OPEN_SOURCE)
@@ -266,28 +266,6 @@ class CleanApkAppsRepositoryTest {
        assertThat(result).isEqualTo(expectedApp)
    }

    @Test
    fun `getAppDetails set source=PWA for pwa App`() = runTest {
        val packageName = "com.example.app"
        val appId = "id-123"
        val expectedApp = Application(_id = appId, name = "Example", is_pwa = true, source = Source.PWA)

        every { SystemInfoProvider.getSupportedArchitectureList() } returns  listOf("arm64-v8a")
        coEvery {
            cleanApkRetrofit.checkAvailablePackages(any(), any(), any())
        } returns Response.success(Search(apps = listOf(Application(_id = appId))))
        coEvery {
            cleanApkRetrofit.getAppOrPWADetailsByID(any(), any(), any())
        } returns Response.success(CleanApkApplication(
            app = Application(_id = appId, name = "Example", is_pwa = true),
            success = true
        ))

        val result = repository.getAppDetails(packageName)

        assertThat(result).isEqualTo(expectedApp)
    }

    @Test
    fun `getDownloadInfo forwards single supported architecture`() = runTest {
        every { SystemInfoProvider.getSupportedArchitecture() } returns "arm64-v8a"
+40 −1
Original line number Diff line number Diff line
@@ -25,11 +25,16 @@ import foundation.e.apps.data.application.data.Application
import foundation.e.apps.data.application.data.Home
import foundation.e.apps.data.cleanapk.CleanApkRetrofit
import foundation.e.apps.data.cleanapk.CleanApkSearchHelper
import foundation.e.apps.data.cleanapk.data.app.CleanApkApplication
import foundation.e.apps.data.cleanapk.data.home.CleanApkHome
import foundation.e.apps.data.cleanapk.data.home.HomeScreenResponse
import foundation.e.apps.data.cleanapk.data.search.Search
import foundation.e.apps.data.enums.Source
import foundation.e.apps.data.enums.Type
import foundation.e.apps.utils.SystemInfoProvider
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
import io.mockk.mockk
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -66,7 +71,12 @@ class CleanApkPwaRepositoryTest {
            )
        } returns Response.success(HomeScreenResponse(home = CleanApkHome()))

        coEvery { homeConverter.toGenericHome(any(), CleanApkRetrofit.APP_TYPE_PWA) } returns expectedHomes
        coEvery {
            homeConverter.toGenericHome(
                any(),
                CleanApkRetrofit.APP_TYPE_PWA
            )
        } returns expectedHomes

        val inputList = mutableListOf<Home>()
        val result = repository.getHomeScreenData(inputList)
@@ -99,4 +109,33 @@ class CleanApkPwaRepositoryTest {

        repository.getHomeScreenData(mutableListOf())
    }

    @Test
    fun `getAppDetails set source=PWA for pwa App`() = runTest {
        val packageName = "com.example.app"
        val appId = "id-123"
        val expectedApp = Application(
            _id = appId,
            name = "Example",
            is_pwa = true,
            source = Source.PWA,
            type = Type.PWA
        )

        coEvery {
            cleanApkRetrofit.checkAvailablePackages(any(), any(), any())
        } returns Response.success(Search(apps = listOf(Application(_id = appId))))
        coEvery {
            cleanApkRetrofit.getAppOrPWADetailsByID(any(), any(), any())
        } returns Response.success(
            CleanApkApplication(
                app = Application(_id = appId, name = "Example", is_pwa = true),
                success = true
            )
        )

        val result = repository.getAppDetails(packageName)

        assertThat(result).isEqualTo(expectedApp)
    }
}