Files
galaxy/app/src/search/command_palette/selected_items_tests.rs
T

50 lines
1.3 KiB
Rust

use super::*;
use itertools::Itertools;
use warpui::keymap::BindingId;
#[test]
fn test_enqueue_new_item() {
let mut selected_items = SelectedItems::new();
let summary_1 = ItemSummary::Action {
binding_id: BindingId::new(),
};
let summary_2 = ItemSummary::Action {
binding_id: BindingId::new(),
};
// Enqueue two items.
selected_items.enqueue(summary_1.clone());
selected_items.enqueue(summary_2.clone());
// Items should be returned in reverse order of they were enqueued.
assert_eq!(
selected_items.iter().collect_vec(),
vec![&summary_2, &summary_1]
);
}
#[test]
fn test_enqueue_existing_item() {
let mut selected_items = SelectedItems::new();
let summary_1 = ItemSummary::Action {
binding_id: BindingId::new(),
};
let summary_2 = ItemSummary::Action {
binding_id: BindingId::new(),
};
// Enqueue `summary_1` twice.
selected_items.enqueue(summary_1.clone());
selected_items.enqueue(summary_2.clone());
selected_items.enqueue(summary_1.clone());
// Ensure `summary_1` is returned first since it was enqueued more recently and that it isn't
// included in the selected items list twice.
assert_eq!(
selected_items.iter().collect_vec(),
vec![&summary_1, &summary_2]
);
}