Integration testing harness

This commit is contained in:
Blaž Hrastnik 2021-10-26 18:03:03 +09:00 committed by Skyler Hawthorne
parent adb6cd5376
commit 308cab3e5c
2 changed files with 26 additions and 2 deletions

View File

@ -41,7 +41,7 @@
pub struct Application { pub struct Application {
compositor: Compositor, compositor: Compositor,
editor: Editor, pub editor: Editor,
config: Arc<ArcSwap<Config>>, config: Arc<ArcSwap<Config>>,
@ -193,7 +193,7 @@ fn render(&mut self) {
scroll: None, scroll: None,
}; };
self.compositor.render(&mut cx); // self.compositor.render(&mut cx);
} }
pub async fn event_loop(&mut self) { pub async fn event_loop(&mut self) {

View File

@ -0,0 +1,24 @@
use helix_term::{application::Application, args::Args, config::Config};
use helix_view::current;
use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers};
#[tokio::test]
async fn it_works() {
let args = Args::default();
let config = Config::default();
let mut app = Application::new(args, config).unwrap();
let inputs = &['i', 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'];
for input in inputs {
// TODO: use input.parse::<KeyEvent>
app.handle_terminal_events(Ok(Event::Key(KeyEvent {
code: KeyCode::Char(*input),
modifiers: KeyModifiers::NONE,
})));
}
let (_, doc) = current!(app.editor);
assert_eq!(doc.text(), "hello world\n");
}