use etcd_client::Client;
use tici_test_utils::test_utils::init_logger_for_ut;

pub async fn setup_etcd() -> Result<String, anyhow::Error> {
    init_logger_for_ut();
    std::env::var("ETCD_ADDR").map_err(|_| anyhow::anyhow!("ETCD_ADDR not set"))
}

pub async fn setup_etcd_client() -> Option<Client> {
    let endpoint = match setup_etcd().await {
        Ok(endpoint) => endpoint,
        Err(e) => {
            eprintln!("Failed to set up etcd, err={}", e);
            return None;
        }
    };
    match Client::connect([endpoint], None).await {
        Ok(client) => Some(client),
        Err(e) => {
            eprintln!("Failed to connect to etcd, err={}", e);
            None
        }
    }
}
