@@ -28,7 +28,14 @@ jest.mock('@sentry/utils', () => {
28
28
} ;
29
29
} ) ;
30
30
31
- jest . mock ( '../../src/browser/metrics' ) ;
31
+ const mockStartTrackingWebVitals = jest . fn ( ) . mockReturnValue ( ( ) => ( ) => { } ) ;
32
+
33
+ jest . mock ( '../../src/browser/metrics' , ( ) => ( {
34
+ addPerformanceEntries : jest . fn ( ) ,
35
+ startTrackingInteractions : jest . fn ( ) ,
36
+ startTrackingLongTasks : jest . fn ( ) ,
37
+ startTrackingWebVitals : ( ) => mockStartTrackingWebVitals ( ) ,
38
+ } ) ) ;
32
39
33
40
const instrumentOutgoingRequestsMock = jest . fn ( ) ;
34
41
jest . mock ( './../../src/browser/request' , ( ) => {
@@ -57,6 +64,8 @@ describe('BrowserTracing', () => {
57
64
hub = new Hub ( new BrowserClient ( options ) ) ;
58
65
makeMain ( hub ) ;
59
66
document . head . innerHTML = '' ;
67
+
68
+ mockStartTrackingWebVitals . mockClear ( ) ;
60
69
} ) ;
61
70
62
71
afterEach ( ( ) => {
@@ -371,6 +380,17 @@ describe('BrowserTracing', () => {
371
380
jest . advanceTimersByTime ( 2000 ) ;
372
381
expect ( mockFinish ) . toHaveBeenCalledTimes ( 1 ) ;
373
382
} ) ;
383
+
384
+ it ( 'calls `_collectWebVitals` if enabled' , ( ) => {
385
+ createBrowserTracing ( true , { routingInstrumentation : customInstrumentRouting } ) ;
386
+ const transaction = getActiveTransaction ( hub ) as IdleTransaction ;
387
+
388
+ const span = transaction . startChild ( ) ; // activities = 1
389
+ span . finish ( ) ; // activities = 0
390
+
391
+ jest . advanceTimersByTime ( TRACING_DEFAULTS . idleTimeout ) ;
392
+ expect ( mockStartTrackingWebVitals ) . toHaveBeenCalledTimes ( 1 ) ;
393
+ } ) ;
374
394
} ) ;
375
395
376
396
describe ( 'heartbeatInterval' , ( ) => {
0 commit comments