From d0dfadf9fff8e81f11677dba6920b885c818c4d4 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 16 Feb 2026 15:13:51 +0000 Subject: test: fix list reporter under test conditions this took a lot of investigation to work out why this was failing --- src/lib/list.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/lib') diff --git a/src/lib/list.rs b/src/lib/list.rs index c0837b7..d8b038e 100644 --- a/src/lib/list.rs +++ b/src/lib/list.rs @@ -168,15 +168,21 @@ pub async fn list_from_remotes( } let verbose = is_verbose(); + let is_test = std::env::var("NGITTEST").is_ok(); let spinner_state = if !verbose { Some(Arc::new(Mutex::new(GitSpinnerState::new()))) } else { None }; - let progress_reporter = if !verbose { - MultiProgress::with_draw_target(indicatif::ProgressDrawTarget::hidden()) - } else { + // Under test conditions the draw target must be hidden even though + // verbose is true (NGITTEST sets NGIT_VERBOSE). A visible + // MultiProgress writes ANSI cursor-movement sequences to stderr and + // the subsequent `progress_reporter.clear()` erases lines of real + // git-remote-helper output that tests rely on. + let progress_reporter = if verbose && !is_test { MultiProgress::new() + } else { + MultiProgress::with_draw_target(indicatif::ProgressDrawTarget::hidden()) }; let success_count = Arc::new(AtomicU64::new(0)); -- cgit v1.2.3