26 lines
816 B
Rust
26 lines
816 B
Rust
use client::config::binds::config::Config;
|
|
use client::input::leader::leader_match_action;
|
|
use client::config::binds::key_sequences::parse_binding;
|
|
use crossterm::event::KeyCode;
|
|
|
|
#[test]
|
|
fn test_space_b_d_binding() {
|
|
// Minimal fake config TOML
|
|
let toml_str = r#"
|
|
[keybindings]
|
|
close_buffer = ["space+b+d"]
|
|
"#;
|
|
let config: Config = toml::from_str(toml_str).unwrap();
|
|
|
|
let seq = vec![KeyCode::Char(' '), KeyCode::Char('b'), KeyCode::Char('d')];
|
|
let action = leader_match_action(&config, &seq);
|
|
assert_eq!(action, Some("close_buffer"));
|
|
}
|
|
|
|
#[test]
|
|
fn parses_space_b_r() {
|
|
let seq = parse_binding("space+b+r");
|
|
let codes: Vec<KeyCode> = seq.iter().map(|p| p.code).collect();
|
|
assert_eq!(codes, vec![KeyCode::Char(' '), KeyCode::Char('b'), KeyCode::Char('r')]);
|
|
}
|