11use std:: { thread:: sleep, time:: Duration } ;
22
33use crate :: common:: { ServerEnv , array, check_internodes_communication, spawn_server_process} ;
4- use duva:: clients:: ClientStreamHandler ;
4+ use duva:: {
5+ clients:: ClientStreamHandler ,
6+ domains:: cluster_actors:: heartbeats:: scheduler:: LEADER_HEARTBEAT_INTERVAL_MAX ,
7+ } ;
58
69#[ tokio:: test]
710async fn test_leader_election ( ) {
@@ -22,7 +25,7 @@ async fn test_leader_election() {
2225
2326 // WHEN
2427 leader_p. kill ( ) . unwrap ( ) ;
25- sleep ( Duration :: from_secs ( 2 ) ) ;
28+ sleep ( Duration :: from_millis ( LEADER_HEARTBEAT_INTERVAL_MAX ) ) ;
2629
2730 // THEN
2831 let mut flag = false ;
@@ -59,7 +62,7 @@ async fn test_set_twice_after_election() {
5962
6063 // WHEN
6164 leader_p. kill ( ) . unwrap ( ) ;
62- sleep ( Duration :: from_secs ( 1 ) ) ;
65+ sleep ( Duration :: from_millis ( LEADER_HEARTBEAT_INTERVAL_MAX ) ) ;
6366
6467 let mut flag = false ;
6568 for f in [ & follower_p1, & follower_p2] {
@@ -96,7 +99,7 @@ async fn test_leader_election_twice() {
9699
97100 // !first leader is killed -> election happens
98101 leader_p. kill ( ) . unwrap ( ) ;
99- sleep ( Duration :: from_secs ( 1 ) ) ;
102+ sleep ( Duration :: from_millis ( LEADER_HEARTBEAT_INTERVAL_MAX ) ) ;
100103
101104 let mut processes = vec ! [ ] ;
102105
@@ -109,11 +112,12 @@ async fn test_leader_election_twice() {
109112 }
110113 let new_process =
111114 spawn_server_process ( & ServerEnv :: default ( ) . with_leader_bind_addr ( f. bind_addr ( ) . into ( ) ) ) ;
112- sleep ( Duration :: from_secs ( 1 ) ) ;
115+ sleep ( Duration :: from_millis ( LEADER_HEARTBEAT_INTERVAL_MAX ) ) ;
113116
114117 // WHEN
115118 // ! second leader is killed -> election happens
116119 f. kill ( ) . unwrap ( ) ;
120+ sleep ( Duration :: from_millis ( LEADER_HEARTBEAT_INTERVAL_MAX ) ) ;
117121 processes. push ( new_process) ;
118122 }
119123 assert_eq ! ( processes. len( ) , 2 ) ;
0 commit comments