[test] add tests for progress manager modes; verify bar counts and total bar visibility in single and multi modes
This commit is contained in:
@@ -228,6 +228,13 @@ impl ProgressManager {
|
||||
Self::with_multi(mp, total as u64)
|
||||
}
|
||||
|
||||
/// Test helper: create a Single-mode manager with a hidden draw target, safe for tests
|
||||
/// even when not attached to a TTY.
|
||||
pub fn new_for_tests_single_hidden() -> Self {
|
||||
let mp = Arc::new(MultiProgress::with_draw_target(ProgressDrawTarget::hidden()));
|
||||
Self::with_single(mp)
|
||||
}
|
||||
|
||||
/// Backwards-compatible constructor used by older tests: same as new_for_tests_multi_hidden.
|
||||
pub fn test_new_multi(total: usize) -> Self {
|
||||
Self::new_for_tests_multi_hidden(total)
|
||||
@@ -241,6 +248,23 @@ impl ProgressManager {
|
||||
}
|
||||
}
|
||||
|
||||
/// Test helper: return the number of visible bars managed initially.
|
||||
/// Single mode: 3 (header, info, current). Multi mode: 4 (header, info, current, total).
|
||||
pub fn testing_bar_count(&self) -> usize {
|
||||
match &self.inner {
|
||||
ProgressInner::Noop => 0,
|
||||
ProgressInner::Single(_) => 3,
|
||||
ProgressInner::Multi(m) => {
|
||||
// Base bars always present
|
||||
let mut count = 4;
|
||||
// If per-file bars were initialized, include them as well
|
||||
if let Ok(files) = m.files.lock() { if let Some(v) = &*files { count += v.len(); } }
|
||||
if let Ok(t) = m.total_pct.lock() { if t.is_some() { count += 1; } }
|
||||
count
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Test helper: get state of the current item bar (position, length, finished, message).
|
||||
pub fn current_state_for_tests(&self) -> Option<(u64, u64, bool, String)> {
|
||||
match &self.inner {
|
||||
|
Reference in New Issue
Block a user