Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/ui/key_handler/navigation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ fn handle_left_key(app: &mut AppState, _orders: &Arc<Mutex<Vec<SmallOrder>>>) {
| UiMode::ConfirmClearCurrencies(ref mut selected_button)
| UiMode::ConfirmDeleteHistoryOrder(_, ref mut selected_button)
| UiMode::ConfirmBulkDeleteHistory(ref mut selected_button)
| UiMode::ConfirmGenerateNewKeys(ref mut selected_button)
| UiMode::ConfirmExit(ref mut selected_button) => {
// Switch to YES button (left side)
*selected_button = true;
Expand Down Expand Up @@ -158,6 +159,7 @@ fn handle_right_key(app: &mut AppState, _orders: &Arc<Mutex<Vec<SmallOrder>>>) {
| UiMode::ConfirmClearCurrencies(ref mut selected_button)
| UiMode::ConfirmDeleteHistoryOrder(_, ref mut selected_button)
| UiMode::ConfirmBulkDeleteHistory(ref mut selected_button)
| UiMode::ConfirmGenerateNewKeys(ref mut selected_button)
| UiMode::ConfirmExit(ref mut selected_button) => {
// Switch to NO button (right side)
*selected_button = false;
Expand Down Expand Up @@ -565,3 +567,30 @@ pub fn handle_tab_navigation(code: KeyCode, app: &mut AppState) {
_ => {}
}
}

#[cfg(test)]
mod confirm_toggle_tests {
use super::*;
use crate::ui::UserRole;

#[test]
fn generate_new_keys_confirmation_can_be_moved_to_no() {
// Rotating keys replaces the user row and clears the orders table, so
// this confirmation must be selectable. It was missing from both
// Left/Right groups: arrowing to NO did nothing and Enter rotated.
let orders = Arc::new(Mutex::new(Vec::new()));
let mut app = AppState::new(UserRole::User);
app.mode = UiMode::ConfirmGenerateNewKeys(true);

handle_right_key(&mut app, &orders);
assert!(
matches!(app.mode, UiMode::ConfirmGenerateNewKeys(false)),
"Right must select NO"
);
handle_left_key(&mut app, &orders);
assert!(
matches!(app.mode, UiMode::ConfirmGenerateNewKeys(true)),
"Left must select YES"
);
}
}