Skip to content

Commit 2872e8e

Browse files
authored
Fix flaky RateLimiter test (#4100)
* changed RateLimiterTest `close cancels the timer` to use reflection
1 parent 467b52b commit 2872e8e

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

sentry/src/test/java/io/sentry/transport/RateLimiterTest.kt

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import io.sentry.hints.DiskFlushNotification
2828
import io.sentry.protocol.SentryId
2929
import io.sentry.protocol.SentryTransaction
3030
import io.sentry.protocol.User
31+
import io.sentry.test.getProperty
32+
import io.sentry.test.injectForField
3133
import io.sentry.util.HintUtils
3234
import org.awaitility.kotlin.await
3335
import org.mockito.kotlin.eq
@@ -38,9 +40,8 @@ import org.mockito.kotlin.verify
3840
import org.mockito.kotlin.verifyNoMoreInteractions
3941
import org.mockito.kotlin.whenever
4042
import java.io.File
43+
import java.util.Timer
4144
import java.util.UUID
42-
import java.util.concurrent.CountDownLatch
43-
import java.util.concurrent.TimeUnit
4445
import java.util.concurrent.atomic.AtomicBoolean
4546
import kotlin.test.Test
4647
import kotlin.test.assertEquals
@@ -363,19 +364,16 @@ class RateLimiterTest {
363364
@Test
364365
fun `close cancels the timer`() {
365366
val rateLimiter = fixture.getSUT()
366-
whenever(fixture.currentDateProvider.currentTimeMillis).thenReturn(0, 1, 2001)
367-
368-
val applied = CountDownLatch(1)
369-
var activeForReplay = false
370-
rateLimiter.addRateLimitObserver {
371-
applied.countDown()
372-
activeForReplay = rateLimiter.isActiveForCategory(Replay)
373-
}
367+
val timer = mock<Timer>()
368+
rateLimiter.injectForField("timer", timer)
374369

375-
rateLimiter.updateRetryAfterLimits("1:replay:key", null, 1)
370+
// When the rate limiter is closed
376371
rateLimiter.close()
377372

378-
applied.await(2, TimeUnit.SECONDS)
379-
assertTrue(activeForReplay)
373+
// Then the timer is cancelled
374+
verify(timer).cancel()
375+
376+
// And is removed by the rateLimiter
377+
assertNull(rateLimiter.getProperty("timer"))
380378
}
381379
}

0 commit comments

Comments
 (0)