use super::*;
use std::net::SocketAddr;
use tokio::net::TcpListener;
#[tokio::test]
async fn run_bails_after_consecutive_failures_cap() {
let listener = TcpListener::bind("127.0.0.1:0").await.unwrap();
let addr: SocketAddr = listener.local_addr().unwrap();
drop(listener);
let args = decdn_common::cli::TopArgs {
metrics_url: Some(format!("http://{addr}")),
config: None,
interval_ms: 1,
json: false,
timeout_ms: 100,
};
let err = run(&args, None)
.await
.expect_err("loop must bail after the consecutive-failure cap");
let msg = format!("{err:#}");
let cap = MAX_CONSECUTIVE_SCRAPE_FAILURES;
assert!(
msg.contains(&format!("{cap} times in a row")),
"expected '{cap} times in a row' in error chain, got: {msg}"
);
}