From deefa090669f368af6872e14ff5e724443d5547b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Mon, 28 Mar 2022 17:50:29 +0200 Subject: [PATCH] connection-tester: extract out setup method --- .../validator-client/src/connection_tester.rs | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/common/client-libs/validator-client/src/connection_tester.rs b/common/client-libs/validator-client/src/connection_tester.rs index 390558d946..362aa06bed 100644 --- a/common/client-libs/validator-client/src/connection_tester.rs +++ b/common/client-libs/validator-client/src/connection_tester.rs @@ -14,7 +14,7 @@ use url::Url; const MAX_URLS_TESTED: usize = 200; // Run connection tests for all specified nymd and api urls. These are all run concurrently. -pub async fn run_validator_connection_test( +pub async fn run_validator_connection_test( nymd_urls: impl Iterator, api_urls: impl Iterator, mixnet_contract_address: HashMap, H>, @@ -23,23 +23,8 @@ pub async fn run_validator_connection_test( HashMap>, ) { // Setup all the clients for the connection tests - let connection_test_clients = { - let nymd_connection_test_clients = nymd_urls.filter_map(|(network, url)| { - let address = mixnet_contract_address - .get(&network) - .expect("No configured contract address") - .clone(); - NymdClient::::connect(url.as_str(), address, None, None) - .map(move |client| ClientForConnectionTest::Nymd(network, url, Box::new(client))) - .ok() - }); - - let api_connection_test_clients = api_urls.map(|(network, url)| { - ClientForConnectionTest::Api(network, url.clone(), ApiClient::new(url)) - }); - - nymd_connection_test_clients.chain(api_connection_test_clients) - }; + let connection_test_clients = + setup_connection_tests(nymd_urls, api_urls, mixnet_contract_address); // Run all tests async let connection_results = futures::future::join_all( @@ -57,6 +42,28 @@ pub async fn run_validator_connection_test( ) } +fn setup_connection_tests( + nymd_urls: impl Iterator, + api_urls: impl Iterator, + mixnet_contract_address: HashMap, H>, +) -> impl Iterator { + let nymd_connection_test_clients = nymd_urls.filter_map(move |(network, url)| { + let address = mixnet_contract_address + .get(&network) + .expect("No configured contract address") + .clone(); + NymdClient::::connect(url.as_str(), address, None, None) + .map(move |client| ClientForConnectionTest::Nymd(network, url, Box::new(client))) + .ok() + }); + + let api_connection_test_clients = api_urls.map(|(network, url)| { + ClientForConnectionTest::Api(network, url.clone(), ApiClient::new(url)) + }); + + nymd_connection_test_clients.chain(api_connection_test_clients) +} + fn extract_and_collect_results_into_map( connection_results: &[ConnectionResult], url_type: &UrlType,