Files
galaxy/app/src/integration_testing/window/assertion.rs
T

27 lines
837 B
Rust

use galaxyui::{
async_assert_eq,
integration::{AssertionCallback, AssertionOutcome, StepData},
windowing::WindowManager,
SingletonEntity,
};
/// Saves the active window id with the given step data key.
pub fn save_active_window_id<K>(window_key: K) -> AssertionCallback
where
K: Into<String>,
{
let window_key = window_key.into();
Box::new(move |app, _| {
let window_id = app.read(|ctx| WindowManager::as_ref(ctx).active_window());
AssertionOutcome::SuccessWithData(StepData::new(
window_key.clone(),
window_id.expect("window id present"),
))
})
}
/// Asserts the number of windows that are open.
pub fn assert_num_windows_open(num_windows: usize) -> AssertionCallback {
Box::new(move |app, _| async_assert_eq!(app.window_ids().len(), num_windows))
}