rmcl 0.4.0

A fully featured Minecraft TUI launcher
use super::{
    confirm::{ConfirmTarget, confirm_popup_area},
    keybind_line_fitted, word_wrap_size,
};

#[test]
fn fitted_keybinds_use_terminal_width_and_omit_overflow() {
    let line = keybind_line_fitted(&[("", " select"), ("a", " add")], 10);

    assert_eq!(line.width(), 10);
    assert_eq!(line.to_string(), "[⏎] select");
}

#[test]
fn word_wrap_size_uses_terminal_width_for_unicode_text() {
    assert_eq!(word_wrap_size("Übergröße", 20), (9, 1));
    assert_eq!(word_wrap_size("世界 test", 6), (4, 2));
    assert_eq!(word_wrap_size("one\n\ntwo", 20), (3, 3));
}

#[test]
fn confirmation_area_uses_display_width_for_unicode_names() {
    let frame = ratatui::layout::Rect::new(0, 0, 100, 30);
    let ascii = ConfirmTarget::Instance {
        name: "a".repeat(30),
    };
    let unicode = ConfirmTarget::Instance {
        name: format!("é{}", "a".repeat(29)),
    };

    assert_eq!(
        confirm_popup_area(frame, &ascii),
        confirm_popup_area(frame, &unicode)
    );
}