File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -62,4 +62,20 @@ describe('trackUser', () => {
6262
6363 expect ( fetchMock ) . toHaveBeenCalledTimes ( 1 ) ;
6464 } ) ;
65+
66+ it ( 'gracefully bypasses tracking when user metric logs are empty or falsy' , ( ) => {
67+ const fetchMock = vi . fn ( ) . mockResolvedValue ( { } ) ;
68+ vi . stubGlobal ( 'fetch' , fetchMock ) ;
69+
70+ const sendBeaconMock = vi . fn ( ) . mockReturnValue ( true ) ;
71+ Object . defineProperty ( navigator , 'sendBeacon' , {
72+ value : sendBeaconMock ,
73+ configurable : true ,
74+ } ) ;
75+
76+ trackUser ( '' ) ;
77+
78+ expect ( sendBeaconMock ) . not . toHaveBeenCalled ( ) ;
79+ expect ( fetchMock ) . not . toHaveBeenCalled ( ) ;
80+ } ) ;
6581} ) ;
Original file line number Diff line number Diff line change 11export function trackUser ( username : string ) {
2+ if ( ! username || username . trim ( ) === '' ) {
3+ return ;
4+ }
25 if ( typeof navigator === 'undefined' || typeof window === 'undefined' ) return ;
36
47 const payload = JSON . stringify ( { username } ) ;
You can’t perform that action at this time.
0 commit comments