feat: Handle public instances (#126)
Co-authored-by: davidoskky <davidoskky@hidden.hidden> Co-committed-by: davidoskky <davidoskky@hidden.hidden>
This commit is contained in:
@ -20,6 +20,8 @@ import org.junit.Test
|
||||
|
||||
private const val BASE_URL = "https://test.com/selfoss/"
|
||||
|
||||
private const val USERNAME = "username"
|
||||
|
||||
private const val SPOUT = "spouts\\rss\\fulltextrss"
|
||||
|
||||
private const val IMAGE_URL = "b3aa8a664d08eb15d6ff1db2fa83e0d9.png"
|
||||
@ -49,7 +51,7 @@ class RepositoryTest {
|
||||
repository = Repository(api, appSettingsService, isConnectionAvailable, db)
|
||||
|
||||
runBlocking {
|
||||
repository.updateApiVersion()
|
||||
repository.updateApiInformation()
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,12 +60,13 @@ class RepositoryTest {
|
||||
clearAllMocks()
|
||||
every { appSettingsService.getApiVersion() } returns 4
|
||||
every { appSettingsService.getBaseUrl() } returns BASE_URL
|
||||
every { appSettingsService.getUserName() } returns USERNAME
|
||||
every { appSettingsService.isItemCachingEnabled() } returns false
|
||||
every { appSettingsService.isUpdateSourcesEnabled() } returns false
|
||||
|
||||
coEvery { api.version() } returns StatusAndData(
|
||||
coEvery { api.apiInformation() } returns StatusAndData(
|
||||
success = true,
|
||||
data = SelfossModel.ApiVersion("2.19-ba1e8e3", "4.0.0")
|
||||
data = SelfossModel.ApiInformation("2.19-ba1e8e3", "4.0.0", SelfossModel.ApiConfiguration(false, true))
|
||||
)
|
||||
coEvery { api.stats() } returns StatusAndData(
|
||||
success = true,
|
||||
@ -81,7 +84,7 @@ class RepositoryTest {
|
||||
fun instantiate_repository() {
|
||||
initializeRepository()
|
||||
|
||||
coVerify(exactly = 1) { api.version() }
|
||||
coVerify(exactly = 1) { api.apiInformation() }
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -90,7 +93,7 @@ class RepositoryTest {
|
||||
|
||||
initializeRepository(MutableStateFlow(false))
|
||||
|
||||
coVerify(exactly = 0) { api.version() }
|
||||
coVerify(exactly = 0) { api.apiInformation() }
|
||||
coVerify(exactly = 0) { api.stats() }
|
||||
}
|
||||
|
||||
@ -110,10 +113,70 @@ class RepositoryTest {
|
||||
verify(exactly = 1) { appSettingsService.updateApiVersion(4) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun get_public_access() {
|
||||
every { appSettingsService.updatePublicAccess(any()) } returns Unit
|
||||
coEvery { api.apiInformation() } returns StatusAndData(
|
||||
success = true,
|
||||
data = SelfossModel.ApiInformation("2.19-ba1e8e3", "4.0.0", SelfossModel.ApiConfiguration(true, true))
|
||||
)
|
||||
every { appSettingsService.getUserName() } returns ""
|
||||
|
||||
initializeRepository()
|
||||
|
||||
coVerify(exactly = 1) { api.apiInformation() }
|
||||
coVerify(exactly = 1) { appSettingsService.updatePublicAccess(true) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun get_public_access_username_not_empty() {
|
||||
every { appSettingsService.updatePublicAccess(any()) } returns Unit
|
||||
coEvery { api.apiInformation() } returns StatusAndData(
|
||||
success = true,
|
||||
data = SelfossModel.ApiInformation("2.19-ba1e8e3", "4.0.0", SelfossModel.ApiConfiguration(true, true))
|
||||
)
|
||||
every { appSettingsService.getUserName() } returns "username"
|
||||
|
||||
initializeRepository()
|
||||
|
||||
coVerify(exactly = 1) { api.apiInformation() }
|
||||
coVerify(exactly = 0) { appSettingsService.updatePublicAccess(true) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun get_public_access_no_auth() {
|
||||
every { appSettingsService.updatePublicAccess(any()) } returns Unit
|
||||
coEvery { api.apiInformation() } returns StatusAndData(
|
||||
success = true,
|
||||
data = SelfossModel.ApiInformation("2.19-ba1e8e3", "4.0.0", SelfossModel.ApiConfiguration(true, false))
|
||||
)
|
||||
every { appSettingsService.getUserName() } returns ""
|
||||
|
||||
initializeRepository()
|
||||
|
||||
coVerify(exactly = 1) { api.apiInformation() }
|
||||
coVerify(exactly = 0) { appSettingsService.updatePublicAccess(true) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun get_public_access_disabled() {
|
||||
every { appSettingsService.updatePublicAccess(any()) } returns Unit
|
||||
coEvery { api.apiInformation() } returns StatusAndData(
|
||||
success = true,
|
||||
data = SelfossModel.ApiInformation("2.19-ba1e8e3", "4.0.0", SelfossModel.ApiConfiguration(false, true))
|
||||
)
|
||||
every { appSettingsService.getUserName() } returns ""
|
||||
|
||||
initializeRepository()
|
||||
|
||||
coVerify(exactly = 1) { api.apiInformation() }
|
||||
coVerify(exactly = 0) { appSettingsService.updatePublicAccess(true) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun get_api_1_date_with_api_4_version_stored() {
|
||||
every { appSettingsService.getApiVersion() } returns 4
|
||||
coEvery { api.version() } returns StatusAndData(success = false, null)
|
||||
coEvery { api.apiInformation() } returns StatusAndData(success = false, null)
|
||||
val itemParameters = FakeItemParameters()
|
||||
itemParameters.datetime = "2021-04-23 11:45:32"
|
||||
coEvery { api.getItems(any(), any(), any(), any(), any(), any(), any()) } returns
|
||||
|
Reference in New Issue
Block a user