Skip to content

Commit 0060f9c

Browse files
committed
stream_givenConflicts_whenErrorMessageResolvingConflicts_thenShouldLog
Signed-off-by: matt-ramotar <[email protected]>
1 parent c2b2402 commit 0060f9c

File tree

1 file changed

+55
-2
lines changed

1 file changed

+55
-2
lines changed

store/src/commonTest/kotlin/org/mobilenativefoundation/store/store5/mutable_store/RealMutableStoreTests.kt renamed to store/src/commonTest/kotlin/org/mobilenativefoundation/store/store5/mutable_store/EagerConflictResolutionLoggingTests.kt

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import dev.mokkery.matcher.any
99
import dev.mokkery.matcher.eq
1010
import dev.mokkery.mock
1111
import dev.mokkery.verify
12-
import dev.mokkery.verify.VerifyMode
1312
import dev.mokkery.verify.VerifyMode.Companion.exactly
1413
import dev.mokkery.verifySuspend
1514
import kotlinx.coroutines.flow.flowOf
@@ -28,7 +27,7 @@ import org.mobilenativefoundation.store.store5.test_utils.model.Note
2827
import kotlin.test.Test
2928
import kotlin.test.assertEquals
3029

31-
class RealMutableStoreTests {
30+
class EagerConflictResolutionLoggingTests {
3231
private val testScope = TestScope()
3332

3433
private val delegate = mock<RealStore<String, Note, Note, Note>>(autoUnit)
@@ -98,4 +97,58 @@ class RealMutableStoreTests {
9897

9998
}
10099

100+
@Test
101+
fun stream_givenConflicts_whenErrorMessageResolvingConflicts_thenShouldLog() = testScope.runTest {
102+
// Given
103+
val latestNote = Note("id", "Title", "Content")
104+
val readResponse = StoreReadResponse.Data(latestNote, StoreReadResponseOrigin.Cache)
105+
val delegateFlow = flowOf(readResponse)
106+
val errorMessage = "Error updating network."
107+
val readRequest = StoreReadRequest.fresh("id")
108+
109+
every {
110+
delegate.stream(any())
111+
} returns delegateFlow
112+
113+
everySuspend {
114+
delegate.latestOrNull(any())
115+
} returns latestNote
116+
117+
everySuspend {
118+
bookkeeper.getLastFailedSync(any())
119+
} returns 1L
120+
121+
everySuspend {
122+
updater.post(any(), any())
123+
} returns UpdaterResult.Error.Message(errorMessage)
124+
125+
126+
// When
127+
val stream = mutableStore.stream<Boolean>(
128+
readRequest
129+
)
130+
131+
// Then
132+
133+
stream.test {
134+
135+
verifySuspend(exactly(1)) {
136+
updater.post(eq("id"), eq(latestNote))
137+
}
138+
139+
verify(exactly(1)) {
140+
logger.error(eq(errorMessage))
141+
}
142+
143+
verify(exactly(1)) {
144+
delegate.stream(eq(readRequest))
145+
}
146+
147+
assertEquals(readResponse, awaitItem())
148+
149+
awaitComplete()
150+
}
151+
152+
}
153+
101154
}

0 commit comments

Comments
 (0)