@@ -187,7 +187,7 @@ where
187
187
Ok ( urls)
188
188
}
189
189
190
- fn routes_stats ( & self ) -> ( usize , usize ) {
190
+ fn routes_stats ( & self ) -> ( usize , Option < usize > ) {
191
191
let snapshot = self . routing_snapshot . load ( ) ;
192
192
snapshot. nodes_stats ( )
193
193
}
@@ -422,7 +422,7 @@ mod tests {
422
422
tokio:: time:: sleep ( snapshot_update_duration) . await ;
423
423
let routed_domains = route_n_times ( 6 , Arc :: clone ( & route_provider) ) ;
424
424
assert_routed_domains ( routed_domains, vec ! [ node_1. domain( ) ] , 6 ) ;
425
- assert_eq ! ( route_provider. routes_stats( ) , ( 1 , 1 ) ) ;
425
+ assert_eq ! ( route_provider. routes_stats( ) , ( 1 , Some ( 1 ) ) ) ;
426
426
427
427
// Test 2: multiple route() calls return 3 different domains with equal fairness (repetition).
428
428
// Two healthy nodes are added to the topology.
@@ -437,15 +437,15 @@ mod tests {
437
437
vec ! [ node_1. domain( ) , node_2. domain( ) , node_3. domain( ) ] ,
438
438
2 ,
439
439
) ;
440
- assert_eq ! ( route_provider. routes_stats( ) , ( 3 , 3 ) ) ;
440
+ assert_eq ! ( route_provider. routes_stats( ) , ( 3 , Some ( 3 ) ) ) ;
441
441
442
442
// Test 3: multiple route() calls return 2 different domains with equal fairness (repetition).
443
443
// One node is set to unhealthy.
444
444
checker. overwrite_healthy_nodes ( vec ! [ node_1. clone( ) , node_3. clone( ) ] ) ;
445
445
tokio:: time:: sleep ( snapshot_update_duration) . await ;
446
446
let routed_domains = route_n_times ( 6 , Arc :: clone ( & route_provider) ) ;
447
447
assert_routed_domains ( routed_domains, vec ! [ node_1. domain( ) , node_3. domain( ) ] , 3 ) ;
448
- assert_eq ! ( route_provider. routes_stats( ) , ( 3 , 2 ) ) ;
448
+ assert_eq ! ( route_provider. routes_stats( ) , ( 3 , Some ( 2 ) ) ) ;
449
449
450
450
// Test 4: multiple route() calls return 3 different domains with equal fairness (repetition).
451
451
// Unhealthy node is set back to healthy.
@@ -457,7 +457,7 @@ mod tests {
457
457
vec ! [ node_1. domain( ) , node_2. domain( ) , node_3. domain( ) ] ,
458
458
2 ,
459
459
) ;
460
- assert_eq ! ( route_provider. routes_stats( ) , ( 3 , 3 ) ) ;
460
+ assert_eq ! ( route_provider. routes_stats( ) , ( 3 , Some ( 3 ) ) ) ;
461
461
462
462
// Test 5: multiple route() calls return 3 different domains with equal fairness (repetition).
463
463
// One healthy node is added, but another one goes unhealthy.
@@ -476,7 +476,7 @@ mod tests {
476
476
vec ! [ node_2. domain( ) , node_3. domain( ) , node_4. domain( ) ] ,
477
477
2 ,
478
478
) ;
479
- assert_eq ! ( route_provider. routes_stats( ) , ( 4 , 3 ) ) ;
479
+ assert_eq ! ( route_provider. routes_stats( ) , ( 4 , Some ( 3 ) ) ) ;
480
480
481
481
// Test 6: multiple route() calls return a single domain=api1.com.
482
482
// One node is set to unhealthy and one is removed from the topology.
@@ -485,7 +485,7 @@ mod tests {
485
485
tokio:: time:: sleep ( snapshot_update_duration) . await ;
486
486
let routed_domains = route_n_times ( 3 , Arc :: clone ( & route_provider) ) ;
487
487
assert_routed_domains ( routed_domains, vec ! [ node_2. domain( ) ] , 3 ) ;
488
- assert_eq ! ( route_provider. routes_stats( ) , ( 3 , 1 ) ) ;
488
+ assert_eq ! ( route_provider. routes_stats( ) , ( 3 , Some ( 1 ) ) ) ;
489
489
}
490
490
491
491
#[ tokio:: test]
0 commit comments