@@ -1823,10 +1823,28 @@ class ScopesTest {
18231823 }
18241824
18251825 @Test
1826- fun `when session trace lifecycle is enabled, startTransaction uses session propagation context` () {
1826+ fun `when session trace lifecycle is enabled without active session, root transaction does not use scope propagation context` () {
18271827 val scopes = generateScopes { it.isEnableSessionTraceLifecycle = true }
18281828 var propagationContext: PropagationContext ? = null
18291829 scopes.configureScope { propagationContext = it.propagationContext }
1830+ val context = TransactionContext (" name" , " op" )
1831+
1832+ val transaction = scopes.startTransaction(context)
1833+
1834+ assertTrue(transaction is SentryTracer )
1835+ assertEquals(context.traceId, transaction.root.spanContext.traceId)
1836+ assertNotEquals(propagationContext!! .traceId, transaction.root.spanContext.traceId)
1837+ }
1838+
1839+ @Test
1840+ fun `when session trace lifecycle is enabled, startTransaction uses session propagation context` () {
1841+ val scopes = generateScopes {
1842+ it.isEnableSessionTraceLifecycle = true
1843+ it.release = " 1.0.0"
1844+ }
1845+ scopes.startSession()
1846+ var propagationContext: PropagationContext ? = null
1847+ scopes.configureScope { propagationContext = it.propagationContext }
18301848
18311849 val transaction = scopes.startTransaction(TransactionContext (" name" , " op" ))
18321850
@@ -1839,7 +1857,11 @@ class ScopesTest {
18391857
18401858 @Test
18411859 fun `continued trace with parent span is not remapped to session trace` () {
1842- val scopes = generateScopes { it.isEnableSessionTraceLifecycle = true }
1860+ val scopes = generateScopes {
1861+ it.isEnableSessionTraceLifecycle = true
1862+ it.release = " 1.0.0"
1863+ }
1864+ scopes.startSession()
18431865 val traceId = " 75302ac48a024bde9a3b3734a82e36c8"
18441866 val parentSpanId = " 1000000000000000"
18451867 val context = scopes.continueTrace(" $traceId -$parentSpanId -1" , emptyList())!!
@@ -1853,7 +1875,11 @@ class ScopesTest {
18531875
18541876 @Test
18551877 fun `when session trace lifecycle is enabled, root transaction uses current propagation context` () {
1856- val scopes = generateScopes { it.isEnableSessionTraceLifecycle = true }
1878+ val scopes = generateScopes {
1879+ it.isEnableSessionTraceLifecycle = true
1880+ it.release = " 1.0.0"
1881+ }
1882+ scopes.startSession()
18571883 val traceId = " 75302ac48a024bde9a3b3734a82e36c8"
18581884 val parentSpanId = " 1000000000000000"
18591885 scopes.continueTrace(" $traceId -$parentSpanId -1" , emptyList())
0 commit comments