Skip to content

Commit 5726fb4

Browse files
authored
Fix issue where view state would update and delete space from user query (#737)
1 parent d842b0d commit 5726fb4

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

app/src/androidTest/java/com/duckduckgo/app/systemsearch/SystemSearchViewModelTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,18 @@ class SystemSearchViewModelTest {
8585
assertEquals(autocompleteQueryResult, newViewState?.autocompleteResults)
8686
}
8787

88+
@Test
89+
fun whenUserAddsSpaceToQueryThenViewStateMatchesAndSpaceTrimmedFromAutocomplete() = ruleRunBlockingTest {
90+
testee.userUpdatedQuery(QUERY)
91+
testee.userUpdatedQuery("$QUERY ")
92+
93+
val newViewState = testee.viewState.value
94+
assertNotNull(newViewState)
95+
assertEquals("$QUERY ", newViewState?.queryText)
96+
assertEquals(appQueryResult, newViewState?.appResults)
97+
assertEquals(autocompleteQueryResult, newViewState?.autocompleteResults)
98+
}
99+
88100
@Test
89101
fun whenUserClearsQueryThenViewStateReset() = ruleRunBlockingTest {
90102
testee.userUpdatedQuery(QUERY)

app/src/main/java/com/duckduckgo/app/systemsearch/SystemSearchViewModel.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,22 +91,21 @@ class SystemSearchViewModel(
9191

9292
appsJob?.cancel()
9393

94-
val trimmedQuery = query.trim()
95-
96-
if (trimmedQuery == currentViewState().queryText) {
94+
if (query == currentViewState().queryText) {
9795
return
9896
}
9997

100-
if (trimmedQuery.isBlank()) {
98+
if (query.isBlank()) {
10199
userClearedQuery()
102100
return
103101
}
104102

105-
viewState.value = currentViewState().copy(queryText = trimmedQuery)
106-
autoCompletePublishSubject.accept(trimmedQuery)
103+
viewState.value = currentViewState().copy(queryText = query)
107104

105+
val trimmedQuery = query.trim()
106+
autoCompletePublishSubject.accept(trimmedQuery)
108107
appsJob = viewModelScope.launch(dispatchers.io()) {
109-
updateAppResults(deviceAppLookup.query(query))
108+
updateAppResults(deviceAppLookup.query(trimmedQuery))
110109
}
111110
}
112111

0 commit comments

Comments
 (0)