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 @@ type Signals = futures_util::stream::Empty<()>;
pub struct Application {
compositor: Compositor,
editor: Editor,
pub editor: Editor,
config: Arc<ArcSwap<Config>>,
@ -193,7 +193,7 @@ impl Application {
scroll: None,
};
self.compositor.render(&mut cx);
// self.compositor.render(&mut cx);
}
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");
}