cargo hollywood
Diffstat (limited to 'src/test/mod.rs')
| -rw-r--r-- | src/test/mod.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/test/mod.rs b/src/test/mod.rs index f5bdb47..803e1ad 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -6,6 +6,7 @@ use crossbeam::channel::Receiver; use crossterm::event::{self, Event, KeyCode}; use ratatui::prelude::*; use ratatui::Terminal; +use std::ops::ControlFlow; use std::path::Path; use std::time::{Duration, Instant}; @@ -60,8 +61,8 @@ impl TestState { self.done = true; return; } - TestMessage::CompilerEvent(c) => { - return; + TestMessage::CompilerEvent(e) => { + unreachable!("comp module should have handled event {e:?}") } }; match event { @@ -99,8 +100,14 @@ pub fn run<B: Backend>( meta: &cargo::Metadata, ) -> Result<()> { let mut state = TestState::new(dir)?; + match crate::compiler::run(terminal, meta, state.rx)? { + ControlFlow::Break(()) => return Ok(()), + ControlFlow::Continue(rx) => { + state.rx = rx; + } + } loop { - terminal.draw(|f| ui::ui(f, &mut state, &meta))?; + terminal.draw(|f| ui::ui(f, &mut state, meta))?; if event::poll(Duration::from_millis(5))? { if let Event::Key(key) = event::read()? { match state.screen { |