diff --git a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt index 72b4568d1..b6261fac2 100644 --- a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt +++ b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt @@ -48,8 +48,8 @@ class GetRecentSearchQueriesUseCaseTest { // Check that the number of recent search queries are up to 10. assertEquals( - 10, - recentSearchQueries.first().size, + expected = 10, + actual = recentSearchQueries.first().size, ) } @@ -61,7 +61,6 @@ class GetRecentSearchQueriesUseCaseTest { // insert search queries over 10. testRecentSearchQueries.forEach { query -> recentSearchRepository.insertOrReplaceRecentSearch(query) - advanceUntilIdle() } // Check that search queries is ordered in recently up to 10 diff --git a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt index f700bdc31..f300464a4 100644 --- a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt +++ b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt @@ -18,19 +18,26 @@ package com.google.samples.apps.nowinandroid.core.testing.repository import com.google.samples.apps.nowinandroid.core.data.model.RecentSearchQuery import com.google.samples.apps.nowinandroid.core.data.repository.RecentSearchRepository +import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.map class TestRecentSearchRepository : RecentSearchRepository { - private val cachedRecentSearches: MutableList = mutableListOf() + private val cachedRecentSearches = MutableSharedFlow>( + replay = 1, + onBufferOverflow = BufferOverflow.DROP_OLDEST + ).apply { tryEmit(mutableListOf()) } override fun getRecentSearchQueries(limit: Int): Flow> = - flowOf(cachedRecentSearches.sortedByDescending { it.queriedDate }.take(limit)) + cachedRecentSearches.map { it.sortedByDescending { it.queriedDate }.take(limit) } override suspend fun insertOrReplaceRecentSearch(searchQuery: String) { - cachedRecentSearches.add(RecentSearchQuery(searchQuery)) + val searchQueries = cachedRecentSearches.map { it.apply { add(RecentSearchQuery(searchQuery)) } }.first() + cachedRecentSearches.emit(searchQueries) } - override suspend fun clearRecentSearches() = cachedRecentSearches.clear() + override suspend fun clearRecentSearches() = cachedRecentSearches.emit(mutableListOf()) }