@@ -128,11 +128,15 @@ describe('App Start Integration', () => {
128
128
129
129
it ( 'Does add App Start Span older than threshold in development builds' , async ( ) => {
130
130
set__DEV__ ( true ) ;
131
- const [ timeOriginMilliseconds , appStartTimeMilliseconds ] = mockTooOldAppStart ( ) ;
131
+ const [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] = mockTooOldAppStart ( ) ;
132
132
133
133
const actualEvent = await captureStandAloneAppStart ( ) ;
134
134
expect ( actualEvent ) . toEqual (
135
- expectEventWithStandaloneWarmAppStart ( actualEvent , { timeOriginMilliseconds, appStartTimeMilliseconds } ) ,
135
+ expectEventWithStandaloneWarmAppStart ( actualEvent , {
136
+ timeOriginMilliseconds,
137
+ appStartTimeMilliseconds,
138
+ appStartDurationMilliseconds,
139
+ } ) ,
136
140
) ;
137
141
} ) ;
138
142
@@ -433,21 +437,27 @@ describe('App Start Integration', () => {
433
437
434
438
it ( 'Does not add App Start Span older than threshold' , async ( ) => {
435
439
set__DEV__ ( false ) ;
436
- mockTooOldAppStart ( ) ;
440
+ const [ timeOriginMilliseconds ] = mockTooOldAppStart ( ) ;
437
441
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 } ) ) ;
440
446
} ) ;
441
447
442
448
it ( 'Does add App Start Span older than threshold in development builds' , async ( ) => {
443
449
set__DEV__ ( true ) ;
444
- const [ timeOriginMilliseconds , appStartTimeMilliseconds ] = mockTooOldAppStart ( ) ;
450
+ const [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] = mockTooOldAppStart ( ) ;
445
451
446
452
const actualEvent = await processEvent (
447
453
getMinimalTransactionEvent ( { startTimestampSeconds : timeOriginMilliseconds } ) ,
448
454
) ;
449
455
expect ( actualEvent ) . toEqual (
450
- expectEventWithAttachedWarmAppStart ( { timeOriginMilliseconds, appStartTimeMilliseconds } ) ,
456
+ expectEventWithAttachedWarmAppStart ( {
457
+ timeOriginMilliseconds,
458
+ appStartTimeMilliseconds,
459
+ appStartDurationMilliseconds,
460
+ } ) ,
451
461
) ;
452
462
} ) ;
453
463
@@ -901,9 +911,11 @@ function expectEventWithAttachedColdAppStart({
901
911
function expectEventWithAttachedWarmAppStart ( {
902
912
timeOriginMilliseconds,
903
913
appStartTimeMilliseconds,
914
+ appStartDurationMilliseconds,
904
915
} : {
905
916
timeOriginMilliseconds : number ;
906
917
appStartTimeMilliseconds : number ;
918
+ appStartDurationMilliseconds ?: number ;
907
919
} ) {
908
920
return expect . objectContaining < TransactionEvent > ( {
909
921
type : 'transaction' ,
@@ -920,7 +932,7 @@ function expectEventWithAttachedWarmAppStart({
920
932
} ) ,
921
933
measurements : expect . objectContaining ( {
922
934
[ APP_START_WARM_MEASUREMENT ] : {
923
- value : timeOriginMilliseconds - appStartTimeMilliseconds ,
935
+ value : appStartDurationMilliseconds || timeOriginMilliseconds - appStartTimeMilliseconds ,
924
936
unit : 'millisecond' ,
925
937
} ,
926
938
} ) ,
@@ -1006,9 +1018,11 @@ function expectEventWithStandaloneWarmAppStart(
1006
1018
{
1007
1019
timeOriginMilliseconds,
1008
1020
appStartTimeMilliseconds,
1021
+ appStartDurationMilliseconds,
1009
1022
} : {
1010
1023
timeOriginMilliseconds : number ;
1011
1024
appStartTimeMilliseconds : number ;
1025
+ appStartDurationMilliseconds ?: number ;
1012
1026
} ,
1013
1027
) {
1014
1028
return expect . objectContaining < TransactionEvent > ( {
@@ -1026,7 +1040,7 @@ function expectEventWithStandaloneWarmAppStart(
1026
1040
} ) ,
1027
1041
measurements : expect . objectContaining ( {
1028
1042
[ APP_START_WARM_MEASUREMENT ] : {
1029
- value : timeOriginMilliseconds - appStartTimeMilliseconds ,
1043
+ value : appStartDurationMilliseconds || timeOriginMilliseconds - appStartTimeMilliseconds ,
1030
1044
unit : 'millisecond' ,
1031
1045
} ,
1032
1046
} ) ,
@@ -1107,7 +1121,10 @@ function mockTooLongAppStart() {
1107
1121
1108
1122
function mockTooOldAppStart ( ) {
1109
1123
const timeOriginMilliseconds = Date . now ( ) ;
1124
+ // Ensures app start is old (more than 1 minute before transaction start)
1110
1125
const appStartTimeMilliseconds = timeOriginMilliseconds - 65000 ;
1126
+ const appStartEndTimestampMilliseconds = appStartTimeMilliseconds + 5000 ;
1127
+ const appStartDurationMilliseconds = appStartEndTimestampMilliseconds - appStartTimeMilliseconds ;
1111
1128
const mockAppStartResponse : NativeAppStartResponse = {
1112
1129
type : 'warm' ,
1113
1130
app_start_timestamp_ms : appStartTimeMilliseconds ,
@@ -1116,13 +1133,14 @@ function mockTooOldAppStart() {
1116
1133
} ;
1117
1134
1118
1135
// App start finish timestamp
1119
- _setAppStartEndTimestampMs ( timeOriginMilliseconds ) ;
1136
+ // App start length is 5 seconds
1137
+ _setAppStartEndTimestampMs ( appStartEndTimestampMilliseconds ) ;
1120
1138
mockFunction ( getTimeOriginMilliseconds ) . mockReturnValue ( timeOriginMilliseconds - 64000 ) ;
1121
1139
mockFunction ( NATIVE . fetchNativeAppStart ) . mockResolvedValue ( mockAppStartResponse ) ;
1122
1140
// Transaction start timestamp
1123
1141
mockFunction ( timestampInSeconds ) . mockReturnValue ( timeOriginMilliseconds / 1000 + 65 ) ;
1124
1142
1125
- return [ timeOriginMilliseconds , appStartTimeMilliseconds ] ;
1143
+ return [ timeOriginMilliseconds , appStartTimeMilliseconds , appStartDurationMilliseconds ] ;
1126
1144
}
1127
1145
1128
1146
/**
0 commit comments