@@ -273,6 +273,9 @@ pub trait Connection: Send + Sync {
273273 ) -> anyhow:: Result < ( ) > ;
274274
275275 async fn get_status_page_data ( & self ) -> anyhow:: Result < PartialStatusPageData > ;
276+
277+ /// Get all of the configuration for all of the collectors
278+ async fn get_collector_configs ( & self ) -> anyhow:: Result < Vec < CollectorConfig > > ;
276279}
277280
278281#[ async_trait:: async_trait]
@@ -1121,4 +1124,39 @@ mod tests {
11211124 } )
11221125 . await ;
11231126 }
1127+
1128+ #[ tokio:: test]
1129+ async fn get_collector_configs ( ) {
1130+ run_postgres_test ( |ctx| async {
1131+ let db = ctx. db_client ( ) . connection ( ) . await ;
1132+ let target = Target :: X86_64UnknownLinuxGnu ;
1133+
1134+ let benchmark_set_one = BenchmarkSet ( 0u32 ) ;
1135+ let collector_name_one = "collector-1" ;
1136+ db. add_collector_config ( collector_name_one, target, benchmark_set_one. 0 , true )
1137+ . await
1138+ . unwrap ( ) ;
1139+
1140+ let benchmark_set_two = BenchmarkSet ( 1u32 ) ;
1141+ let collector_name_two = "collector-2" ;
1142+ db. add_collector_config ( collector_name_two, target, benchmark_set_two. 0 , true )
1143+ . await
1144+ . unwrap ( ) ;
1145+
1146+ let collector_configs = db. get_collector_configs ( ) . await ;
1147+ assert ! ( collector_configs. is_ok( ) ) ;
1148+ let collector_configs = collector_configs. unwrap ( ) ;
1149+
1150+ assert_eq ! ( collector_configs[ 0 ] . name( ) , collector_name_one) ;
1151+ assert_eq ! ( collector_configs[ 0 ] . benchmark_set( ) , benchmark_set_one) ;
1152+ assert_eq ! ( collector_configs[ 0 ] . is_active( ) , true ) ;
1153+
1154+ assert_eq ! ( collector_configs[ 1 ] . name( ) , collector_name_two) ;
1155+ assert_eq ! ( collector_configs[ 1 ] . benchmark_set( ) , benchmark_set_two) ;
1156+ assert_eq ! ( collector_configs[ 1 ] . is_active( ) , true ) ;
1157+
1158+ Ok ( ctx)
1159+ } )
1160+ . await ;
1161+ }
11241162}
0 commit comments