Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
use warpui::{
|
||||
async_assert,
|
||||
integration::{AssertionCallback, TestStep},
|
||||
};
|
||||
|
||||
use crate::integration_testing::view_getters::terminal_view;
|
||||
|
||||
use super::terminal::assert_no_block_executing;
|
||||
|
||||
pub fn new_step_with_default_assertions(name: &str) -> TestStep {
|
||||
new_step_with_default_assertions_for_pane(name, 0, 0)
|
||||
}
|
||||
|
||||
pub fn new_step_with_default_assertions_for_pane(
|
||||
name: &str,
|
||||
tab_index: usize,
|
||||
pane_index: usize,
|
||||
) -> TestStep {
|
||||
// Add global assertions here
|
||||
TestStep::new(name)
|
||||
.add_named_assertion(
|
||||
"no pending model events",
|
||||
assert_no_pending_model_events_for_pane(tab_index, pane_index),
|
||||
)
|
||||
.add_named_assertion(
|
||||
"no block executing",
|
||||
assert_no_block_executing(tab_index, pane_index),
|
||||
)
|
||||
}
|
||||
|
||||
pub fn assert_no_pending_model_events() -> AssertionCallback {
|
||||
assert_no_pending_model_events_for_pane(0, 0)
|
||||
}
|
||||
|
||||
pub fn assert_no_pending_model_events_for_pane(
|
||||
tab_index: usize,
|
||||
pane_index: usize,
|
||||
) -> AssertionCallback {
|
||||
Box::new(move |app, window_id| {
|
||||
let terminal_view = terminal_view(app, window_id, tab_index, pane_index);
|
||||
terminal_view.read(app, |view, _ctx| {
|
||||
let model = view.model.lock();
|
||||
log::info!("events pending {}", model.are_any_events_pending());
|
||||
async_assert!(
|
||||
!model.are_any_events_pending(),
|
||||
"Should not be any pending model events",
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user