@@ -660,3 +660,93 @@ pub fn routes() -> Vec<Route> {
660
660
pub async fn migrate ( pool : & PgPool ) -> anyhow:: Result < ( ) > {
661
661
Ok ( sqlx:: migrate!( "./migrations" ) . run ( pool) . await ?)
662
662
}
663
+
664
+ #[ cfg( test) ]
665
+ mod test_current_user {
666
+ use crate :: CurrentUser ;
667
+ use crate :: models:: User ;
668
+ use std:: collections:: HashMap ;
669
+
670
+ // New current user should set user and visible clusters to none.
671
+ #[ test]
672
+ fn test_new_current_user ( ) {
673
+ let test_user = CurrentUser :: new ( ) ;
674
+ assert ! ( test_user. get_user( ) . is_none( ) && test_user. get_visible_clusters( ) . is_none( ) ) ;
675
+ }
676
+
677
+ // It should be possible to set and get current user.
678
+ #[ test]
679
+ fn test_set_get_current_user ( ) {
680
+ let test_user = CurrentUser :: new ( ) ;
681
+ let new_user_data = User {
682
+ id : 1 ,
683
+ email : "test@email.com" . to_string ( ) ,
684
+ } ;
685
+
686
+ test_user. set_user ( new_user_data. clone ( ) ) ;
687
+ assert_eq ! (
688
+ (
689
+ test_user. get_user( ) . unwrap( ) . id,
690
+ test_user. get_user( ) . unwrap( ) . email,
691
+ ) , (
692
+ new_user_data. id,
693
+ new_user_data. email,
694
+ ) ) ;
695
+ }
696
+
697
+ // It should be possible to set and get visible clusters.
698
+ #[ test]
699
+ fn test_set_get_visible_clusters ( ) {
700
+ let test_user = CurrentUser :: new ( ) ;
701
+ let new_visible_clusters: HashMap < String , String > = HashMap :: from ( [
702
+ ( "1" . to_string ( ) , "123456789" . to_string ( ) ) ,
703
+ ( "2" . to_string ( ) , "987654321" . to_string ( ) ) ,
704
+ ] ) ;
705
+ test_user. set_visible_clusters ( new_visible_clusters. clone ( ) ) ;
706
+ assert_eq ! (
707
+ (
708
+ test_user. get_visible_clusters( ) . unwrap( ) . get( "1" ) ,
709
+ test_user. get_visible_clusters( ) . unwrap( ) . get( "2" ) ,
710
+ ) , (
711
+ new_visible_clusters. get( "1" ) ,
712
+ new_visible_clusters. get( "2" )
713
+ )
714
+ )
715
+ }
716
+
717
+ // It should reset current user and visible clusters to none.
718
+ #[ test]
719
+ fn test_reset_user_to_default ( ) {
720
+ let test_user = CurrentUser :: new ( ) ;
721
+ let new_user_data = User {
722
+ id : 1 ,
723
+ email : "test@email.com" . to_string ( ) ,
724
+ } ;
725
+ let new_visible_clusters: HashMap < String , String > = HashMap :: from ( [ ( "1" . to_string ( ) , "123456789" . to_string ( ) ) ] ) ;
726
+ test_user. set_user ( new_user_data) ;
727
+ test_user. set_visible_clusters ( new_visible_clusters) ;
728
+ test_user. set_to_default ( ) ;
729
+ assert ! ( test_user. get_user( ) . is_none( ) && test_user. get_visible_clusters( ) . is_none( ) )
730
+
731
+ }
732
+ }
733
+
734
+ #[ cfg( test) ]
735
+ mod test_clusters {
736
+ use crate :: Clusters ;
737
+
738
+ // It should initiate with context and pool being empty hashmaps.
739
+ #[ test]
740
+ fn test_new_clusters ( ) {
741
+ let test_clusters = Clusters :: new ( ) ;
742
+ assert_eq ! (
743
+ (
744
+ test_clusters. pools. lock( ) . len( ) ,
745
+ test_clusters. contexts. lock( ) . len( ) ,
746
+ ) , (
747
+ 0 ,
748
+ 0 ,
749
+ ) ) ;
750
+ }
751
+
752
+ }
0 commit comments