use super::*;
#[test]
fn test_spinner_creation_compact_mode() {
let spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: watch::channel(String::new()).0,
handle: None,
start_time: Instant::now(),
};
assert!(spinner.stop_signal.load(Ordering::Relaxed));
}
#[test]
fn test_spinner_elapsed() {
let spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: watch::channel(String::new()).0,
handle: None,
start_time: Instant::now(),
};
assert!(spinner.elapsed().as_secs() < 1);
}
#[test]
fn test_spinner_set_message() {
let (tx, rx) = watch::channel("initial".to_string());
let spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: tx,
handle: None,
start_time: Instant::now(),
};
spinner.set_message("updated");
assert_eq!(*rx.borrow(), "updated");
}
#[test]
fn test_spinner_stop_success_no_panic() {
let spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: watch::channel("test".to_string()).0,
handle: None,
start_time: Instant::now(),
};
spinner.stop_success("Done!");
}
#[test]
fn test_spinner_stop_error_no_panic() {
let spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: watch::channel("test".to_string()).0,
handle: None,
start_time: Instant::now(),
};
spinner.stop_error("Failed!");
}
#[test]
fn test_spinner_drop_no_panic() {
{
let _spinner = TerminalSpinner {
stop_signal: Arc::new(AtomicBool::new(true)),
message_tx: watch::channel("test".to_string()).0,
handle: None,
start_time: Instant::now(),
};
}
}
#[test]
fn test_spinner_drop_sets_stop_signal() {
let stop_signal = Arc::new(AtomicBool::new(false));
let stop_clone = stop_signal.clone();
{
let _spinner = TerminalSpinner {
stop_signal: stop_clone,
message_tx: watch::channel("test".to_string()).0,
handle: None,
start_time: Instant::now(),
};
}
assert!(stop_signal.load(Ordering::Relaxed));
}
#[test]
fn test_supports_ansi_returns_bool() {
let _result: bool = supports_ansi();
}
#[test]
fn test_supports_color_returns_bool() {
let _result: bool = supports_color();
}
#[test]
fn test_supports_color_respects_no_color() {
let _ = supports_color();
}
#[test]
fn test_supports_ansi_no_panic_on_dumb_term() {
let _ = supports_ansi();
}