@@ -16,6 +16,9 @@ import io.sentry.SentryEnvelope
1616import io.sentry.SentryEnvelopeHeader
1717import io.sentry.SentryEnvelopeItem
1818import io.sentry.SentryEvent
19+ import io.sentry.SentryLogEvent
20+ import io.sentry.SentryLogEvents
21+ import io.sentry.SentryLongDate
1922import io.sentry.SentryOptions
2023import io.sentry.SentryOptionsManipulator
2124import io.sentry.SentryReplayEvent
@@ -336,6 +339,26 @@ class RateLimiterTest {
336339 verifyNoMoreInteractions(fixture.clientReportRecorder)
337340 }
338341
342+ @Test
343+ fun `drop log items as lost` () {
344+ val rateLimiter = fixture.getSUT()
345+ val scopes = mock<IScopes >()
346+ whenever(scopes.options).thenReturn(SentryOptions ())
347+
348+ val logEventItem = SentryEnvelopeItem .fromLogs(fixture.serializer, SentryLogEvents (listOf (
349+ SentryLogEvent (SentryId (), SentryLongDate (0 ), " hello" )
350+ )))
351+ val envelope = SentryEnvelope (SentryEnvelopeHeader (null ), arrayListOf (logEventItem))
352+
353+ rateLimiter.updateRetryAfterLimits(" 60:log_item:key" , null , 1 )
354+ val result = rateLimiter.filter(envelope, Hint ())
355+
356+ assertNull(result)
357+
358+ verify(fixture.clientReportRecorder, times(1 )).recordLostEnvelopeItem(eq(DiscardReason .RATELIMIT_BACKOFF ), same(logEventItem))
359+ verifyNoMoreInteractions(fixture.clientReportRecorder)
360+ }
361+
339362 @Test
340363 fun `drop profileChunk items as lost` () {
341364 val rateLimiter = fixture.getSUT()
0 commit comments