@@ -1390,36 +1390,54 @@ describe('ReactSDKClient', () => {
13901390 expect ( mockFn ) . toHaveBeenCalledTimes ( 0 ) ;
13911391 } ) ;
13921392
1393- it ( 'track works as expected' , ( ) => {
1394- const mockFn = mockInnerClient . track as jest . Mock ;
1393+ describe ( 'track with different parameters' , ( ) => {
1394+ it ( 'track with only event key, calls inner client with valid arguments' , ( ) => {
1395+ const mockFn = mockInnerClient . track as jest . Mock ;
1396+ instance . track ( 'evt1' ) ;
13951397
1396- instance . track ( 'evt1' ) ;
1398+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1399+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { foo : 'bar' } , undefined ) ;
1400+ } ) ;
13971401
1398- expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1399- expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { foo : 'bar' } , undefined ) ;
1402+ it ( 'track with event key and overrided user id and attributes, calls inner client with valid arguments' , ( ) => {
1403+ const mockFn = mockInnerClient . track as jest . Mock ;
1404+ instance . track ( 'evt1' , 'user2' , { bar : 'baz' } ) ;
14001405
1401- mockFn . mockReset ( ) ;
1406+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1407+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user2' , { bar : 'baz' } , undefined ) ;
1408+ } ) ;
14021409
1403- instance . track ( 'evt1' , 'user2' , { bar : 'baz' } ) ;
1410+ it ( 'track with event key and event tags, calls inner client with valid arguments' , ( ) => {
1411+ const mockFn = mockInnerClient . track as jest . Mock ;
1412+ instance . track ( 'evt1' , { tagKey : 'tagVal' } ) ;
14041413
1405- expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1406- expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user2' , { bar : 'baz' } , undefined ) ;
1414+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1415+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { foo : 'bar' } , { tagKey : 'tagVal' } ) ;
1416+ } ) ;
14071417
1408- mockFn . mockReset ( ) ;
1418+ it ( 'track with event key, overrided user id and attributes and event tags, calls inner client with valid arguments' , ( ) => {
1419+ const mockFn = mockInnerClient . track as jest . Mock ;
1420+ instance . track ( 'evt1' , 'user3' , { bla : 'bla' } , { tagKey : 'tagVal' } ) ;
14091421
1410- // Use pre-set user with event tags
1411- instance . track ( 'evt1' , { tagKey : 'tagVal' } ) ;
1422+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1423+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user3' , { bla : 'bla' } , { tagKey : 'tagVal' } ) ;
1424+ } ) ;
14121425
1413- expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1414- expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { foo : 'bar' } , { tagKey : 'tagVal' } ) ;
1426+ it ( 'track with event key, tags, and overrided attributes, calls inner client with valid arguments' , ( ) => {
1427+ const mockFn = mockInnerClient . track as jest . Mock ;
1428+ instance . track ( 'evt1' , { tagKey : 'tagVal' } , { bla : 'bla' } ) ;
14151429
1416- mockFn . mockReset ( ) ;
1430+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1431+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { bla : 'bla' } , { tagKey : 'tagVal' } ) ;
1432+ } ) ;
14171433
1418- // Use overrides with event tags
1419- instance . track ( 'evt1' , 'user3' , { bla : 'bla' } , { tagKey : 'tagVal' } ) ;
1434+ it ( 'track with event key, userId undefined, attributes undefined, and event tags, calls inner client with valid arguments' , ( ) => {
1435+ const mockFn = mockInnerClient . track as jest . Mock ;
1436+ instance . track ( 'evt1' , undefined , undefined , { tagKey : 'tagVal' } ) ;
14201437
1421- expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1422- expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user3' , { bla : 'bla' } , { tagKey : 'tagVal' } ) ;
1438+ expect ( mockFn ) . toHaveBeenCalledTimes ( 1 ) ;
1439+ expect ( mockFn ) . toHaveBeenCalledWith ( 'evt1' , 'user1' , { foo : 'bar' } , { tagKey : 'tagVal' } ) ;
1440+ } ) ;
14231441 } ) ;
14241442 } ) ;
14251443
0 commit comments