@@ -128,11 +128,15 @@ describe('App Start Integration', () => {
128128
129129 it ( 'Does add App Start Span older than threshold in development builds' , async ( ) => {
130130 set__DEV__ ( true ) ;
131- const [ timeOriginMilliseconds , appStartTimeMilliseconds ] = mockTooOldAppStart ( ) ;
131+ const [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] = mockTooOldAppStart ( ) ;
132132
133133 const actualEvent = await captureStandAloneAppStart ( ) ;
134134 expect ( actualEvent ) . toEqual (
135- expectEventWithStandaloneWarmAppStart ( actualEvent , { timeOriginMilliseconds, appStartTimeMilliseconds } ) ,
135+ expectEventWithStandaloneWarmAppStart ( actualEvent , {
136+ timeOriginMilliseconds,
137+ appStartTimeMilliseconds,
138+ appStartDurationMilliseconds,
139+ } ) ,
136140 ) ;
137141 } ) ;
138142
@@ -433,21 +437,27 @@ describe('App Start Integration', () => {
433437
434438 it ( 'Does not add App Start Span older than threshold' , async ( ) => {
435439 set__DEV__ ( false ) ;
436- mockTooOldAppStart ( ) ;
440+ const [ timeOriginMilliseconds ] = mockTooOldAppStart ( ) ;
437441
438- const actualEvent = await processEvent ( getMinimalTransactionEvent ( ) ) ;
439- expect ( actualEvent ) . toStrictEqual ( getMinimalTransactionEvent ( ) ) ;
442+ const actualEvent = await processEvent (
443+ getMinimalTransactionEvent ( { startTimestampSeconds : timeOriginMilliseconds } ) ,
444+ ) ;
445+ expect ( actualEvent ) . toStrictEqual ( getMinimalTransactionEvent ( { startTimestampSeconds : timeOriginMilliseconds } ) ) ;
440446 } ) ;
441447
442448 it ( 'Does add App Start Span older than threshold in development builds' , async ( ) => {
443449 set__DEV__ ( true ) ;
444- const [ timeOriginMilliseconds , appStartTimeMilliseconds ] = mockTooOldAppStart ( ) ;
450+ const [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] = mockTooOldAppStart ( ) ;
445451
446452 const actualEvent = await processEvent (
447453 getMinimalTransactionEvent ( { startTimestampSeconds : timeOriginMilliseconds } ) ,
448454 ) ;
449455 expect ( actualEvent ) . toEqual (
450- expectEventWithAttachedWarmAppStart ( { timeOriginMilliseconds, appStartTimeMilliseconds } ) ,
456+ expectEventWithAttachedWarmAppStart ( {
457+ timeOriginMilliseconds,
458+ appStartTimeMilliseconds,
459+ appStartDurationMilliseconds,
460+ } ) ,
451461 ) ;
452462 } ) ;
453463
@@ -901,9 +911,11 @@ function expectEventWithAttachedColdAppStart({
901911function expectEventWithAttachedWarmAppStart ( {
902912 timeOriginMilliseconds,
903913 appStartTimeMilliseconds,
914+ appStartDurationMilliseconds,
904915} : {
905916 timeOriginMilliseconds : number ;
906917 appStartTimeMilliseconds : number ;
918+ appStartDurationMilliseconds ?: number ;
907919} ) {
908920 return expect . objectContaining < TransactionEvent > ( {
909921 type : 'transaction' ,
@@ -920,7 +932,7 @@ function expectEventWithAttachedWarmAppStart({
920932 } ) ,
921933 measurements : expect . objectContaining ( {
922934 [ APP_START_WARM_MEASUREMENT ] : {
923- value : timeOriginMilliseconds - appStartTimeMilliseconds ,
935+ value : appStartDurationMilliseconds || timeOriginMilliseconds - appStartTimeMilliseconds ,
924936 unit : 'millisecond' ,
925937 } ,
926938 } ) ,
@@ -1006,9 +1018,11 @@ function expectEventWithStandaloneWarmAppStart(
10061018 {
10071019 timeOriginMilliseconds,
10081020 appStartTimeMilliseconds,
1021+ appStartDurationMilliseconds,
10091022 } : {
10101023 timeOriginMilliseconds : number ;
10111024 appStartTimeMilliseconds : number ;
1025+ appStartDurationMilliseconds ?: number ;
10121026 } ,
10131027) {
10141028 return expect . objectContaining < TransactionEvent > ( {
@@ -1026,7 +1040,7 @@ function expectEventWithStandaloneWarmAppStart(
10261040 } ) ,
10271041 measurements : expect . objectContaining ( {
10281042 [ APP_START_WARM_MEASUREMENT ] : {
1029- value : timeOriginMilliseconds - appStartTimeMilliseconds ,
1043+ value : appStartDurationMilliseconds || timeOriginMilliseconds - appStartTimeMilliseconds ,
10301044 unit : 'millisecond' ,
10311045 } ,
10321046 } ) ,
@@ -1107,7 +1121,10 @@ function mockTooLongAppStart() {
11071121
11081122function mockTooOldAppStart ( ) {
11091123 const timeOriginMilliseconds = Date . now ( ) ;
1124+ // Ensures app start is old (more than 1 minute before transaction start)
11101125 const appStartTimeMilliseconds = timeOriginMilliseconds - 65000 ;
1126+ const appStartEndTimestampMilliseconds = appStartTimeMilliseconds + 5000 ;
1127+ const appStartDurationMilliseconds = appStartEndTimestampMilliseconds - appStartTimeMilliseconds ;
11111128 const mockAppStartResponse : NativeAppStartResponse = {
11121129 type : 'warm' ,
11131130 app_start_timestamp_ms : appStartTimeMilliseconds ,
@@ -1116,13 +1133,14 @@ function mockTooOldAppStart() {
11161133 } ;
11171134
11181135 // App start finish timestamp
1119- _setAppStartEndTimestampMs ( timeOriginMilliseconds ) ;
1136+ // App start length is 5 seconds
1137+ _setAppStartEndTimestampMs ( appStartEndTimestampMilliseconds ) ;
11201138 mockFunction ( getTimeOriginMilliseconds ) . mockReturnValue ( timeOriginMilliseconds - 64000 ) ;
11211139 mockFunction ( NATIVE . fetchNativeAppStart ) . mockResolvedValue ( mockAppStartResponse ) ;
11221140 // Transaction start timestamp
11231141 mockFunction ( timestampInSeconds ) . mockReturnValue ( timeOriginMilliseconds / 1000 + 65 ) ;
11241142
1125- return [ timeOriginMilliseconds , appStartTimeMilliseconds ] ;
1143+ return [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] ;
11261144}
11271145
11281146/**
0 commit comments