@@ -556,15 +556,23 @@ describe('Store config UID2', () => {
556
556
} ) ;
557
557
} ) ;
558
558
559
- describe ( 'when no identity is sent in init ' , ( ) => {
559
+ describe ( 'calls the NoIdentityAvailable event ' , ( ) => {
560
560
let handler : ReturnType < typeof jest . fn > ;
561
561
beforeEach ( ( ) => {
562
562
handler = jest . fn ( ) ;
563
563
uid2 . callbacks . push ( handler ) ;
564
564
} ) ;
565
- test ( 'runs NoIdentityAvailable event' , ( ) => {
565
+
566
+ test ( 'when init is called for the first time with no identity' , ( ) => {
567
+ uid2 . init ( { } ) ;
568
+ expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , { identity : null } ) ;
569
+ } ) ;
570
+ test ( 'when init is already complete and called again with no identity' , ( ) => {
571
+ uid2 . init ( { } ) ;
566
572
uid2 . init ( { } ) ;
567
573
expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , { identity : null } ) ;
574
+ } ) ;
575
+ test ( 'when init is already complete and called again with an expired identity' , ( ) => {
568
576
uid2 . init ( { } ) ;
569
577
expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , { identity : null } ) ;
570
578
let expiredIdentity = makeIdentity ( {
@@ -578,55 +586,89 @@ describe('Store config UID2', () => {
578
586
identity : expiredIdentity ,
579
587
} ) ;
580
588
} ) ;
581
- test ( 'runs NoIdentityAvailable event ' , ( ) => {
589
+ test ( 'when init is already complete but the existing identity is expired ' , ( ) => {
582
590
let expiredIdentity = makeIdentity ( {
583
591
identity_expires : Date . now ( ) - 100000 ,
584
592
refresh_expires : Date . now ( ) - 100000 ,
585
593
} ) ;
586
594
uid2 . init ( {
587
595
identity : expiredIdentity ,
588
596
} ) ;
597
+ expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
598
+ identity : expiredIdentity ,
599
+ } ) ;
589
600
uid2 . init ( { } ) ;
590
601
expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
591
602
identity : expiredIdentity ,
592
603
} ) ;
593
604
} ) ;
594
- test ( 'runs NoIdentityAvailable event' , ( ) => {
595
- let expiredIdentity1 = makeIdentity ( {
596
- identity_expires : Date . now ( ) - 5000 ,
597
- refresh_expires : Date . now ( ) - 5000 ,
598
- } ) ;
599
- let expiredIdentity2 = makeIdentity ( {
600
- identity_expires : Date . now ( ) - 100000 ,
601
- refresh_expires : Date . now ( ) - 100000 ,
605
+ test ( 'when identity is expired but refreshable' , ( ) => {
606
+ let expiredRefreshableIdentity = makeIdentity ( {
607
+ identity_expires : Date . now ( ) - 10000 ,
608
+ refresh_expires : Date . now ( ) + 10000 ,
602
609
} ) ;
603
- uid2 . init ( {
604
- identity : expiredIdentity1 ,
610
+ uid2 . setIdentity ( expiredRefreshableIdentity ) ;
611
+
612
+ // in this case, identity is temporarily unavailable but still unavailable
613
+ expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
614
+ identity : null ,
605
615
} ) ;
606
- uid2 . init ( { identity : expiredIdentity2 } ) ;
616
+ } ) ;
617
+ test ( 'when login is required' , ( ) => {
618
+ uid2 . isLoginRequired ( ) ;
619
+
607
620
expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
608
- identity : expiredIdentity2 ,
621
+ identity : null ,
609
622
} ) ;
610
623
} ) ;
611
- test ( 'runs NoIdentityAvailable event' , ( ) => {
612
- uid2 . init ( { } ) ;
613
- let expiredIdentity = makeIdentity ( {
614
- identity_expires : Date . now ( ) - 5000 ,
615
- refresh_expires : Date . now ( ) - 5000 ,
624
+ test ( 'when get identity returns null or get advertising token returns undefined' , ( ) => {
625
+ const nullIdentity = uid2 . getIdentity ( ) ;
626
+
627
+ expect ( nullIdentity ) . toBeNull ( ) ;
628
+ expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
629
+ identity : null ,
616
630
} ) ;
617
- uid2 . setIdentity ( expiredIdentity ) ;
631
+ } ) ;
632
+ test ( 'when there is no advertising token' , ( ) => {
633
+ const token = uid2 . getAdvertisingToken ( ) ;
634
+
635
+ expect ( token ) . toBeUndefined ( ) ;
618
636
expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
619
637
identity : null ,
620
638
} ) ;
621
639
} ) ;
622
- test ( 'runs NoIdentityAvailable event' , ( ) => {
640
+ } ) ;
641
+
642
+ describe ( 'does not call NoIdentityAvailable event' , ( ) => {
643
+ let handler : ReturnType < typeof jest . fn > ;
644
+ beforeEach ( ( ) => {
645
+ handler = jest . fn ( ) ;
646
+ uid2 . callbacks . push ( handler ) ;
647
+ } ) ;
648
+
649
+ test ( 'when setIdentity is run with a valid identity, should not call NoIdentityAvailable on set or get' , ( ) => {
623
650
uid2 . init ( { } ) ;
624
- let expiredIdentity = makeIdentity ( {
625
- identity_expires : Date . now ( ) - 5000 ,
626
- refresh_expires : Date . now ( ) - 5000 ,
651
+ let validIdentity = makeIdentity ( ) ;
652
+ uid2 . setIdentity ( validIdentity ) ;
653
+ expect ( handler ) . not . toHaveBeenCalledWith ( EventType . NoIdentityAvailable , {
654
+ identity : null ,
627
655
} ) ;
628
- uid2 . setIdentity ( expiredIdentity ) ;
629
- expect ( handler ) . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
656
+
657
+ uid2 . getIdentity ( ) ;
658
+ expect ( handler ) . not . toHaveBeenCalledWith ( EventType . NoIdentityAvailable , {
659
+ identity : null ,
660
+ } ) ;
661
+
662
+ uid2 . getAdvertisingToken ( ) ;
663
+ expect ( handler ) . not . toHaveBeenCalledWith ( EventType . NoIdentityAvailable , {
664
+ identity : null ,
665
+ } ) ;
666
+ } ) ;
667
+ test ( 'when identity is set with opted out identity' , ( ) => {
668
+ uid2 . init ( { } ) ;
669
+ let optedOutIdentity = makeIdentity ( { status : 'optout' } ) ;
670
+ uid2 . setIdentity ( optedOutIdentity ) ;
671
+ expect ( handler ) . not . toHaveBeenLastCalledWith ( EventType . NoIdentityAvailable , {
630
672
identity : null ,
631
673
} ) ;
632
674
} ) ;
0 commit comments