Loading app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepository.kt +11 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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> { Loading app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt +1 −23 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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" Loading app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepositoryTest.kt +40 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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) } } Loading
app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepository.kt +11 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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> { Loading
app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt +1 −23 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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" Loading
app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepositoryTest.kt +40 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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) } }