fix: add coEvery import and re-set settings flow in PartnerNotificationManagerTest (batch v1.0.10)
This commit is contained in:
parent
fa501089f2
commit
89213445b9
|
|
@ -1,6 +1,7 @@
|
|||
package app.closer.notifications
|
||||
|
||||
import android.content.Context
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import app.closer.core.navigation.AppRoute
|
||||
import app.closer.domain.repository.AppSettings
|
||||
|
|
@ -8,8 +9,9 @@ import app.closer.domain.repository.SettingsRepository
|
|||
import io.mockk.coEvery
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkConstructor
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import io.mockk.unmockkAll
|
||||
import io.mockk.verify
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
|
@ -25,6 +27,7 @@ class PartnerNotificationManagerTest {
|
|||
private val settingsRepository = mockk<SettingsRepository>()
|
||||
private val quietHoursManager = mockk<QuietHoursManager>()
|
||||
private val rateLimiter = mockk<NotificationRateLimiter>(relaxed = true)
|
||||
private val notificationManagerCompat = mockk<NotificationManagerCompat>(relaxed = true)
|
||||
|
||||
private lateinit var manager: PartnerNotificationManager
|
||||
|
||||
|
|
@ -39,18 +42,29 @@ class PartnerNotificationManagerTest {
|
|||
every { quietHoursManager.isInQuietHours(any(), any()) } returns false
|
||||
every { rateLimiter.canSend(any()) } returns true
|
||||
|
||||
mockkStatic(NotificationManagerCompat::from)
|
||||
every { NotificationManagerCompat.from(context) } returns notificationManagerCompat
|
||||
every { notificationManagerCompat.areNotificationsEnabled() } returns true
|
||||
|
||||
mockkConstructor(NotificationCompat.Builder::class)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setSmallIcon(any<Int>()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setContentTitle(any()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setContentText(any()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setAutoCancel(any()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setContentIntent(any()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().setCategory(any()) } returns mockk(relaxed = true)
|
||||
every { anyConstructed<NotificationCompat.Builder>().build() } returns mockk(relaxed = true)
|
||||
|
||||
manager = PartnerNotificationManager(context, settingsRepository, quietHoursManager, rateLimiter)
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
unmockkStatic(NotificationManagerCompat::from)
|
||||
unmockkAll()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `show records rate limit when enabled`() = runTest {
|
||||
enableNotificationManager()
|
||||
|
||||
manager.show(PartnerNotificationType.PARTNER_ANSWERED, "couple_1")
|
||||
|
||||
verify { rateLimiter.record(NotificationRateLimiter.Type.PARTNER_TRIGGER) }
|
||||
|
|
@ -90,8 +104,6 @@ class PartnerNotificationManagerTest {
|
|||
|
||||
@Test
|
||||
fun `handleRemote maps known FCM types to local types`() = runTest {
|
||||
enableNotificationManager()
|
||||
|
||||
manager.handleRemote("reveal_ready", "couple_1", PartnerNotificationPayload(questionId = "q1"))
|
||||
|
||||
verify { rateLimiter.record(NotificationRateLimiter.Type.PARTNER_TRIGGER) }
|
||||
|
|
@ -155,8 +167,6 @@ class PartnerNotificationManagerTest {
|
|||
)
|
||||
)
|
||||
|
||||
enableNotificationManager()
|
||||
|
||||
manager.show(PartnerNotificationType.PARTNER_ANSWERED, "couple_1")
|
||||
|
||||
verify { rateLimiter.record(NotificationRateLimiter.Type.PARTNER_TRIGGER) }
|
||||
|
|
@ -175,10 +185,4 @@ class PartnerNotificationManagerTest {
|
|||
|
||||
verify(exactly = 0) { rateLimiter.record(any()) }
|
||||
}
|
||||
|
||||
private fun enableNotificationManager() {
|
||||
mockkStatic(NotificationManagerCompat::from)
|
||||
every { NotificationManagerCompat.from(context).areNotificationsEnabled() } returns true
|
||||
every { NotificationManagerCompat.from(context).notify(any(), any()) } returns Unit
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue