diff --git a/src/event/input_event.rs b/src/event/input_event.rs index 2308977..5f53aef 100644 --- a/src/event/input_event.rs +++ b/src/event/input_event.rs @@ -14,7 +14,6 @@ pub enum InputEvent { } pub struct Events { - _tx: Sender>, rx: Receiver>, } @@ -23,7 +22,6 @@ impl Events { let (tx, rx) = mpsc::channel(); let tick_rate: Duration = Duration::from_millis(250); - let event_tx = tx.clone(); thread::spawn(move || { let mut last_tick = Instant::now(); loop { @@ -33,18 +31,18 @@ impl Events { if event::poll(timeout).unwrap() { if let CrosstermEvent::Key(key_event) = event::read().unwrap() { let key = Key::from(key_event); - event_tx.send(InputEvent::KeyEvent(key)).unwrap(); + tx.send(InputEvent::KeyEvent(key)).unwrap(); } } if last_tick.elapsed() >= tick_rate { - event_tx.send(InputEvent::Tick).unwrap(); + tx.send(InputEvent::Tick).unwrap(); last_tick = Instant::now(); } } }); - Events { _tx: tx, rx } + Events { rx } } pub fn next(&self) -> Result, mpsc::RecvError> { diff --git a/src/event/key.rs b/src/event/key.rs index 86a8f74..678fb5c 100644 --- a/src/event/key.rs +++ b/src/event/key.rs @@ -85,14 +85,77 @@ mod tests { #[test] fn test_key_formatter() { + assert_eq!(format!("{}", Key::Esc), ""); + } + + #[test] + fn test_key_formatter_char() { assert_eq!(format!("{}", Key::Char('q')), ""); } #[test] - fn test_key_from() { + fn test_key_from_up() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Up)), Key::Up); + } + + #[test] + fn test_key_from_down() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Down)), Key::Down); + } + + #[test] + fn test_key_from_left() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Left)), Key::Left); + } + + #[test] + fn test_key_from_right() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Right)), Key::Right); + } + + #[test] + fn test_key_from_backspace() { + assert_eq!( + Key::from(KeyEvent::from(KeyCode::Backspace)), + Key::Backspace + ); + } + + #[test] + fn test_key_from_home() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Home)), Key::Home); + } + + #[test] + fn test_key_from_end() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::End)), Key::End); + } + + #[test] + fn test_key_from_delete() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Delete)), Key::Delete); + } + + #[test] + fn test_key_from_enter() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Enter)), Key::Enter); + } + + #[test] + fn test_key_from_esc() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Esc)), Key::Esc); + } + + #[test] + fn test_key_from_char() { assert_eq!( Key::from(KeyEvent::from(KeyCode::Char('q'))), Key::Char('q') ) } + + #[test] + fn test_key_from_unknown() { + assert_eq!(Key::from(KeyEvent::from(KeyCode::Pause)), Key::Unknown); + } }