61 lines · 1.9 KB · Rust
RawDownload
use super::*;use serde_json::json; #[test]fn test_find_binding_prefers_exact_match_over_parameterized() {    let keymap: KeymapFile = serde_json::from_value(json!([        {            "bindings": {                "ctrl-tab": "agents_sidebar::ToggleThreadSwitcher",                "ctrl-shift-tab": ["agents_sidebar::ToggleThreadSwitcher", { "select_last": true }]            }        }    ]))    .unwrap();     let binding = find_binding_in_keymap(&keymap, "agents_sidebar::ToggleThreadSwitcher");    assert_eq!(binding.as_deref(), Some("ctrl-tab"));} #[test]fn test_find_binding_falls_back_to_parameterized_match() {    let keymap: KeymapFile = serde_json::from_value(json!([        {            "bindings": {                "ctrl-shift-tab": ["agents_sidebar::ToggleThreadSwitcher", { "select_last": true }]            }        }    ]))    .unwrap();     let binding = find_binding_in_keymap(&keymap, "agents_sidebar::ToggleThreadSwitcher");    assert_eq!(binding.as_deref(), Some("ctrl-shift-tab"));} #[test]fn test_find_binding_prefers_exact_match_regardless_of_order() {    let keymap: KeymapFile = serde_json::from_value(json!([        {            "bindings": {                "ctrl-shift-tab": ["agents_sidebar::ToggleThreadSwitcher", { "select_last": true }],                "ctrl-tab": "agents_sidebar::ToggleThreadSwitcher"            }        }    ]))    .unwrap();     let binding = find_binding_in_keymap(&keymap, "agents_sidebar::ToggleThreadSwitcher");    assert_eq!(binding.as_deref(), Some("ctrl-tab"));} #[test]fn test_find_binding_later_section_overrides_earlier() {    let keymap: KeymapFile = serde_json::from_value(json!([        { "bindings": { "ctrl-a": "some::Action" } },        { "bindings": { "ctrl-b": "some::Action" } }    ]))    .unwrap();     let binding = find_binding_in_keymap(&keymap, "some::Action");    assert_eq!(binding.as_deref(), Some("ctrl-b"));}