From 8a0b8f58c2ab2e239830f36d5937bc1715d28ed1 Mon Sep 17 00:00:00 2001 From: James Hugman Date: Wed, 31 Jan 2024 13:43:49 +0000 Subject: [PATCH] =?UTF-8?q?Bug=201880476=20=E2=80=94=20Refactor=20onMessag?= =?UTF-8?q?eDisplayed=20bookkeeping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messaging/DefaultMessageControllerTest.kt | 3 +++ .../state/MessagingMiddlewareTest.kt | 20 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/src/test/java/org/mozilla/fenix/messaging/DefaultMessageControllerTest.kt b/app/src/test/java/org/mozilla/fenix/messaging/DefaultMessageControllerTest.kt index aeced21c2..35d5d8b48 100644 --- a/app/src/test/java/org/mozilla/fenix/messaging/DefaultMessageControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/messaging/DefaultMessageControllerTest.kt @@ -4,6 +4,8 @@ package org.mozilla.fenix.messaging +import android.content.Intent +import io.mockk.every import io.mockk.mockk import io.mockk.verify import mozilla.components.service.nimbus.messaging.Message @@ -44,6 +46,7 @@ class DefaultMessageControllerTest { @Test fun `WHEN calling onMessagePressed THEN process the action intent and update the app store`() { val message = mockMessage() + every { messagingController.getIntentForMessage(message) }.returns(Intent()) defaultMessageController.onMessagePressed(message) diff --git a/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt index 3fc27ec6e..b4f72cd14 100644 --- a/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/messaging/state/MessagingMiddlewareTest.kt @@ -232,7 +232,7 @@ class MessagingMiddlewareTest { val message1 = createMessage() val message2 = message1.copy(id = "message2", action = "action2") // An updated message1 that has been displayed once. - val messageDisplayed1 = message1.copy(metadata = createMetadata(displayCount = 1)) + val messageDisplayed1 = incrementDisplayCount(message1) val store = AppStore( AppState( messaging = MessagingState( @@ -253,6 +253,9 @@ class MessagingMiddlewareTest { any(), ) } returns message1 + coEvery { + controller.onMessageDisplayed(message1, any()) + } returns messageDisplayed1 coEvery { controller.onMessageDisplayed(eq(message1), any()) @@ -269,7 +272,7 @@ class MessagingMiddlewareTest { fun `GIVEN a message has not surpassed the maxDisplayCount WHEN evaluate THEN update the message displayCount`() = runTestOnMain { val message = createMessage() // An updated message that has been displayed once. - val messageDisplayed = message.copy(metadata = createMetadata(displayCount = 1)) + val messageDisplayed = incrementDisplayCount(message) val store = AppStore( AppState( messaging = MessagingState( @@ -289,6 +292,9 @@ class MessagingMiddlewareTest { any(), ) } returns message + coEvery { + controller.onMessageDisplayed(message, any()) + } returns messageDisplayed coEvery { controller.onMessageDisplayed(eq(message), any()) @@ -327,6 +333,9 @@ class MessagingMiddlewareTest { any(), ) } returns message + coEvery { + controller.onMessageDisplayed(message, any()) + } returns incrementDisplayCount(message) coEvery { controller.onMessageDisplayed(eq(message), any()) @@ -363,3 +372,10 @@ private fun createMetadata( lastTimeShown, latestBootIdentifier, ) + +private fun incrementDisplayCount(message: Message) = + message.copy( + metadata = createMetadata( + displayCount = message.displayCount + 1, + ), + )