rmcl 0.4.0

A fully featured Minecraft TUI launcher
use super::*;

#[test]
fn push_and_get_all() {
    let name = "test_push_get";
    push(name, "line1");
    push(name, "line2");
    let lines = get_all(name);
    assert!(lines.contains(&"line1".to_string()));
    assert!(lines.contains(&"line2".to_string()));
}

#[test]
fn get_all_missing_instance_returns_empty() {
    let lines = get_all("nonexistent_instance_xyz");
    assert!(lines.is_empty());
}

#[test]
fn clear_removes_instance() {
    let name = "test_clear";
    push(name, "data");
    assert!(!get_all(name).is_empty());
    clear(name);
    assert!(get_all(name).is_empty());
}

#[test]
fn clear_nonexistent_is_noop() {
    clear("never_existed_xyz");
}

#[test]
fn buffer_respects_max_lines() {
    let name = "test_max_lines";
    for i in 0..(MAX_LINES + 100) {
        push(name, format!("line-{i}"));
    }
    let lines = get_all(name);
    assert_eq!(lines.len(), MAX_LINES);
    assert!(
        lines
            .last()
            .unwrap()
            .contains(&format!("{}", MAX_LINES + 99))
    );
}