Repository Unit Tests #50

Merged
AmineB merged 38 commits from davidoskky/ReaderForSelfoss-multiplatform:repository_tests into master 2022-09-30 11:31:55 +00:00
2 changed files with 8 additions and 3 deletions
Showing only changes of commit f9ba13dc32 - Show all commits
@@ -52,11 +52,13 @@ override fun doWork(): Result {
repository.handleDBActions()
val apiItems = repository.tryToCacheItemsAndGetNewOnes()
if (appSettingsService.isNotifyNewItemsEnabled()) {
launch {
handleNewItemsNotification(repository.tryToCacheItemsAndGetNewOnes(), notificationManager)
handleNewItemsNotification(apiItems, notificationManager)
}
}
apiItems.map { it.preloadImages(context) }
}
}
return Result.success()
@@ -66,6 +68,7 @@ override fun doWork(): Result {
newItems: List<SelfossModel.Item>?,
notificationManager: NotificationManager
) {
// TODO: Check if this coroutine is actually required
CoroutineScope(Dispatchers.IO).launch {
val apiItems = newItems.orEmpty()
@@ -102,7 +105,6 @@ override fun doWork(): Result {
notificationManager.notify(2, newItemsNotification.build())
}
}
apiItems.map { it.preloadImages(context) }
Timer("", false).schedule(4000) {
notificationManager.cancel(1)
}
6
@@ -456,16 +456,19 @@ class Repository(private val api: SelfossApi, private val appSettingsService: Ap
db.itemsQueries.updateItem(item.datetime, item.title.getHtmlDecoded(), item.content, item.unread, item.starred, item.thumbnail, item.icon, item.link, item.sourcetitle, item.tags.joinToString(","), item.id.toString())
// TODO: This function should check for duplicate items
AmineB marked this conversation as resolved Outdated
Outdated
Review

I think that the DB handles the duplicates.

I think that the DB handles the duplicates.
Outdated
Review

Does it use the id to check for duplicates? If that is the case then all is good.

Does it use the id to check for duplicates? If that is the case then all is good.
suspend fun tryToCacheItemsAndGetNewOnes() {
suspend fun tryToCacheItemsAndGetNewOnes(): List<SelfossModel.Item> {
try {
val previousNewItems = getDBItems().count { it.unread }
AmineB marked this conversation as resolved Outdated
Outdated
Review

This is useless.

This is useless.
val newItems = getMaxItemsForBackground(ItemType.UNREAD)
val allItems = getMaxItemsForBackground(ItemType.ALL)
val starredItems = getMaxItemsForBackground(ItemType.STARRED)
Outdated
Review

As the function name describes, this must only return the new items.

As the function name describes, this must only return the new items.
Outdated
Review

Ops, you're right I made a mistake while changing things...

Ops, you're right I made a mistake while changing things...
val fullItemsList = newItems + allItems + starredItems
insertDBItems(fullItemsList)
return fullItemsList
} catch (e: Throwable) {
// We do nothing
}
return emptyList()
}
// TODO: Add tests