Loading app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt +4 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,10 @@ class SearchViewModelV2 @Inject constructor( fun onQueryChanged(newQuery: String) { _uiState.update { current -> current.copy(query = newQuery) current.copy( query = newQuery, hasSubmittedSearch = if (newQuery.isNotBlank()) false else current.hasSubmittedSearch, ) } suggestionJob?.cancel() Loading app/src/test/java/foundation/e/apps/ui/search/v2/SearchViewModelV2Test.kt +12 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,18 @@ class SearchViewModelV2Test { assertEquals("", state.query) } @Test fun `typing after submit resets hasSubmittedSearch`() = runTest { viewModel.onSearchSubmitted("query") assertTrue(viewModel.uiState.value.hasSubmittedSearch) viewModel.onQueryChanged("new") val state = viewModel.uiState.value assertFalse(state.hasSubmittedSearch) assertEquals("new", state.query) } @Test fun `clear query after submit retains tabs and results`() = runTest { viewModel.onSearchSubmitted("query") Loading Loading
app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt +4 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,10 @@ class SearchViewModelV2 @Inject constructor( fun onQueryChanged(newQuery: String) { _uiState.update { current -> current.copy(query = newQuery) current.copy( query = newQuery, hasSubmittedSearch = if (newQuery.isNotBlank()) false else current.hasSubmittedSearch, ) } suggestionJob?.cancel() Loading
app/src/test/java/foundation/e/apps/ui/search/v2/SearchViewModelV2Test.kt +12 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,18 @@ class SearchViewModelV2Test { assertEquals("", state.query) } @Test fun `typing after submit resets hasSubmittedSearch`() = runTest { viewModel.onSearchSubmitted("query") assertTrue(viewModel.uiState.value.hasSubmittedSearch) viewModel.onQueryChanged("new") val state = viewModel.uiState.value assertFalse(state.hasSubmittedSearch) assertEquals("new", state.query) } @Test fun `clear query after submit retains tabs and results`() = runTest { viewModel.onSearchSubmitted("query") Loading