diff --git a/src/client/ui.rs b/src/client/ui.rs index 3a1f3d4..a6da4e6 100644 --- a/src/client/ui.rs +++ b/src/client/ui.rs @@ -383,12 +383,11 @@ impl UI { } } KeyEvent { code: KeyCode::Up, .. } - | KeyEvent { code: KeyCode::Char('k'), .. } => { + | KeyEvent { code: KeyCode::Char('j'), .. } => { let index = match self.selection.selected() { Some(i) => { - assert!(self.ports.len() > 0, "We must have ports because we have a selection."); if i == 0 { - self.ports.len() - 1 + 0 } else { i - 1 } @@ -398,11 +397,11 @@ impl UI { self.selection.select(Some(index)); } KeyEvent { code: KeyCode::Down, .. } - | KeyEvent { code: KeyCode::Char('j'), .. } => { + | KeyEvent { code: KeyCode::Char('k'), .. } => { let index = match self.selection.selected() { Some(i) => { assert!(self.ports.len() > 0, "We must have ports because we have a selection."); - (i + 1) % self.ports.len() + (i + 1).min(self.ports.len() - 1) } None => 0, }; @@ -573,73 +572,6 @@ mod tests { assert_eq!(ui.ports.len(), 2); assert_matches!(ui.selection.selected(), Some(0)); - // Move selection up => wraps around the length - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Up, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(1)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Up, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(0)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Up, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(1)); - - // Move selection down => wraps around the length - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Down, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(0)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Down, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(1)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Down, - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(0)); - - // J and K move the correct direction - ui.handle_internal_event(Some(UIEvent::Ports(vec![ - PortDesc { - port: 8080, - desc: "my-service".to_string(), - }, - PortDesc { - port: 8081, - desc: "my-service".to_string(), - }, - PortDesc { - port: 8082, - desc: "my-service".to_string(), - }, - ]))); - assert_eq!(ui.ports.len(), 3); - - // J is down - ui.selection.select(Some(1)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Char('j'), - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(2)); - - // K is up - ui.selection.select(Some(1)); - ui.handle_console_event(Some(Ok(Event::Key(KeyEvent::new( - KeyCode::Char('k'), - KeyModifiers::empty(), - ))))); - assert_matches!(ui.selection.selected(), Some(0)); - drop(sender); }