summaryrefslogtreecommitdiffstats
path: root/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt')
-rw-r--r--mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt35
1 files changed, 35 insertions, 0 deletions
diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt
index 88b9161583..05e20c1163 100644
--- a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt
+++ b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt
@@ -347,6 +347,41 @@ class MessagingMiddlewareTest {
assertEquals(0, store.state.messaging.messages.size)
assertEquals(0, store.state.messaging.messageToShow.size)
}
+
+ @Test
+ fun `GIVEN message is not found WHEN updateMessage THEN do not update the message list`() = runTestOnMain {
+ val message = createMessage(messageId = "1")
+ val message2 = createMessage(messageId = "2")
+ val store = AppStore(
+ AppState(
+ messaging = MessagingState(
+ messages = listOf(
+ message,
+ ),
+ ),
+ ),
+ listOf(
+ MessagingMiddleware(controller, coroutineScope),
+ ),
+ )
+
+ every {
+ controller.getNextMessage(
+ FenixMessageSurfaceId.HOMESCREEN,
+ any(),
+ )
+ } returns message
+
+ coEvery {
+ controller.onMessageDisplayed(eq(message), any())
+ } returns message2
+
+ store.dispatch(Evaluate(FenixMessageSurfaceId.HOMESCREEN)).joinBlocking()
+ store.waitUntilIdle()
+
+ assertEquals(1, store.state.messaging.messages.count())
+ assertEquals(message, store.state.messaging.messages.first())
+ }
}
private fun createMessage(
metadata: Message.Metadata = createMetadata(),