Skip to content

Commit d564f99

Browse files
stefanosianomarkushi
authored andcommitted
Fix flaky RateLimiter test (#4100)
* changed RateLimiterTest `close cancels the timer` to use reflection
1 parent 9289aa7 commit d564f99

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import io.sentry.metrics.EncodedMetrics
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 org.awaitility.kotlin.await
3234
import org.mockito.kotlin.eq
3335
import org.mockito.kotlin.mock
@@ -37,6 +39,7 @@ import org.mockito.kotlin.verify
3739
import org.mockito.kotlin.verifyNoMoreInteractions
3840
import org.mockito.kotlin.whenever
3941
import java.io.File
42+
import java.util.Timer
4043
import java.util.UUID
4144
import java.util.concurrent.atomic.AtomicBoolean
4245
import kotlin.test.Test
@@ -412,18 +415,16 @@ class RateLimiterTest {
412415
@Test
413416
fun `close cancels the timer`() {
414417
val rateLimiter = fixture.getSUT()
415-
whenever(fixture.currentDateProvider.currentTimeMillis).thenReturn(0, 1, 2001)
416-
417-
val applied = AtomicBoolean(true)
418-
rateLimiter.addRateLimitObserver {
419-
applied.set(rateLimiter.isActiveForCategory(Replay))
420-
}
418+
val timer = mock<Timer>()
419+
rateLimiter.injectForField("timer", timer)
421420

422-
rateLimiter.updateRetryAfterLimits("1:replay:key", null, 1)
421+
// When the rate limiter is closed
423422
rateLimiter.close()
424423

425-
// wait for 1.5s to ensure the timer has run after 1s
426-
await.untilTrue(applied)
427-
assertTrue(applied.get())
424+
// Then the timer is cancelled
425+
verify(timer).cancel()
426+
427+
// And is removed by the rateLimiter
428+
assertNull(rateLimiter.getProperty("timer"))
428429
}
429430
}

0 commit comments

Comments
 (0)