@@ -225,6 +225,80 @@ class ActivityLifecycleIntegrationTest {
225225 )
226226 }
227227
228+ @Test
229+ fun `Activity transaction uses custom deadline timeout when autoTransactionDeadlineTimeoutMillis is set to positive value` () {
230+ val sut = fixture.getSut()
231+ fixture.options.tracesSampleRate = 1.0
232+ fixture.options.deadlineTimeout = 60000L // 60 seconds
233+
234+ sut.register(fixture.scopes, fixture.options)
235+ sut.onActivityCreated(mock(), fixture.bundle)
236+
237+ verify(fixture.scopes)
238+ .startTransaction(
239+ any<TransactionContext >(),
240+ check<TransactionOptions > { transactionOptions ->
241+ assertEquals(60000L , transactionOptions.deadlineTimeout)
242+ },
243+ )
244+ }
245+
246+ @Test
247+ fun `Activity transaction uses no deadline timeout when autoTransactionDeadlineTimeoutMillis is set to zero` () {
248+ val sut = fixture.getSut()
249+ fixture.options.tracesSampleRate = 1.0
250+ fixture.options.deadlineTimeout = 0L // No deadline
251+
252+ sut.register(fixture.scopes, fixture.options)
253+ sut.onActivityCreated(mock(), fixture.bundle)
254+
255+ verify(fixture.scopes)
256+ .startTransaction(
257+ any<TransactionContext >(),
258+ check<TransactionOptions > { transactionOptions ->
259+ assertNull(transactionOptions.deadlineTimeout)
260+ },
261+ )
262+ }
263+
264+ @Test
265+ fun `Activity transaction uses no deadline timeout when autoTransactionDeadlineTimeoutMillis is set to negative value` () {
266+ val sut = fixture.getSut()
267+ fixture.options.tracesSampleRate = 1.0
268+ fixture.options.deadlineTimeout = - 1L // No deadline
269+
270+ sut.register(fixture.scopes, fixture.options)
271+ sut.onActivityCreated(mock(), fixture.bundle)
272+
273+ verify(fixture.scopes)
274+ .startTransaction(
275+ any<TransactionContext >(),
276+ check<TransactionOptions > { transactionOptions ->
277+ assertNull(transactionOptions.deadlineTimeout)
278+ },
279+ )
280+ }
281+
282+ @Test
283+ fun `Activity transaction uses default deadline timeout when autoTransactionDeadlineTimeoutMillis is default` () {
284+ val sut = fixture.getSut()
285+ fixture.options.tracesSampleRate = 1.0
286+
287+ sut.register(fixture.scopes, fixture.options)
288+ sut.onActivityCreated(mock(), fixture.bundle)
289+
290+ verify(fixture.scopes)
291+ .startTransaction(
292+ any<TransactionContext >(),
293+ check<TransactionOptions > { transactionOptions ->
294+ assertEquals(
295+ TransactionOptions .DEFAULT_DEADLINE_TIMEOUT_AUTO_TRANSACTION ,
296+ transactionOptions.deadlineTimeout,
297+ )
298+ },
299+ )
300+ }
301+
228302 @Test
229303 fun `Activity gets added to ActivityFramesTracker during transaction creation` () {
230304 val sut = fixture.getSut()
0 commit comments