Skip to content

Commit 122734b

Browse files
author
Josh
committed
more bug fixes
1 parent 25cf733 commit 122734b

4 files changed

Lines changed: 22 additions & 26 deletions

File tree

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ dependencies {
162162
testImplementation(libs.sqldelight.test)
163163
testImplementation(libs.jdbc.sqlite)
164164
testImplementation(libs.androidx.test.core)
165+
testImplementation(libs.kotlinx.coroutines.test)
165166
androidTestImplementation(libs.androidx.junit)
166167
androidTestImplementation(libs.androidx.espresso.core)
167168
androidTestImplementation(platform(libs.androidx.compose.bom))

app/src/main/java/net/frozendevelopment/openletters/feature/letter/list/LetterListViewModel.kt

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,7 @@ data class LetterListState(
2929
val searchTerms: String = "",
3030
val urgentReminders: List<ReminderId> = emptyList(),
3131
val upcomingReminders: List<ReminderId> = emptyList(),
32-
) {
33-
val listHash: String
34-
get() =
35-
letters.hashCode().toString() +
36-
urgentReminders.hashCode().toString() +
37-
upcomingReminders.hashCode().toString()
38-
}
32+
)
3933

4034
class LetterListViewModel(
4135
private val reminderQueries: ReminderQueries,
@@ -67,24 +61,22 @@ class LetterListViewModel(
6761
) {
6862
val categories = categoryQueries.allCategories().executeAsList()
6963

70-
val letters =
71-
searchUseCase(
72-
query = searchTerms,
73-
category = categoryFilter,
74-
)
64+
val letters = searchUseCase(
65+
query = searchTerms,
66+
category = categoryFilter,
67+
)
7568

7669
val urgentReminders = if (searchTerms.isBlank() && categoryFilter == null) {
7770
reminderQueries.urgentReminders().executeAsList()
7871
} else {
7972
emptyList()
8073
}
8174

82-
val upcomingReminders =
83-
if (searchTerms.isBlank() && categoryFilter == null) {
84-
reminderQueries.upcomingReminders().executeAsList()
85-
} else {
86-
emptyList()
87-
}
75+
val upcomingReminders = if (searchTerms.isBlank() && categoryFilter == null) {
76+
reminderQueries.upcomingReminders().executeAsList()
77+
} else {
78+
emptyList()
79+
}
8880

8981
update {
9082
copy(
@@ -103,12 +95,11 @@ class LetterListViewModel(
10395
}
10496

10597
fun toggleCategory(category: CategoryId?) = viewModelScope.launch {
106-
val toggleCategory =
107-
if (category == state.selectedCategoryId) {
108-
null
109-
} else {
110-
category
111-
}
98+
val toggleCategory = if (category == state.selectedCategoryId) {
99+
null
100+
} else {
101+
category
102+
}
112103

113104
update { copy(selectedCategoryId = toggleCategory) }
114105
load(categoryFilter = toggleCategory, searchTerms = state.searchTerms)

app/src/test/java/net/frozendevelopment/openletters/LetterCellUseCaseTests.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package net.frozendevelopment.openletters
33
import androidx.compose.ui.graphics.Color
44
import junit.framework.TestCase.assertEquals
55
import junit.framework.TestCase.assertNull
6+
import kotlinx.coroutines.test.runTest
67
import net.frozendevelopment.openletters.data.sqldelight.models.CategoryId
78
import net.frozendevelopment.openletters.data.sqldelight.models.LetterId
89
import net.frozendevelopment.openletters.usecase.LetterCellModel
@@ -14,15 +15,15 @@ import java.time.ZoneOffset
1415

1516
class LetterCellUseCaseTests {
1617
@Test
17-
fun `should return null if the letter does not exist`() {
18+
fun `should return null if the letter does not exist`() = runTest {
1819
val database = testDatabase()
1920
val useCase = LetterCellUseCase(database.letterQueries)
2021
val result = useCase.invoke(LetterId.random())
2122
assertNull(result)
2223
}
2324

2425
@Test
25-
fun `should return a LetterCellModel if the letter exists`() {
26+
fun `should return a LetterCellModel if the letter exists`() = runTest {
2627
val categoryId = CategoryId.random()
2728
val categoryColor = Color.Cyan
2829

gradle/libs.versions.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ktlint = "13.1.0"
2828
robolectric = "4.16"
2929
mockk = "1.14.7"
3030
nav3Core = "1.0.0"
31+
coroutines = "1.10.2"
3132

3233
[libraries]
3334
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -86,6 +87,8 @@ androidx-core-animation = { group = "androidx.core", name = "core-animation", ve
8687
androidx-ui-text-google-fonts = { group = "androidx.compose.ui", name = "ui-text-google-fonts", version.ref = "uiTextGoogleFonts" }
8788
androidx-datastore-core-android = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastoreCoreAndroid" }
8889

90+
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
91+
8992
[plugins]
9093
android-application = { id = "com.android.application", version.ref = "agp" }
9194
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

0 commit comments

Comments
 (0)