pub mod assert;
pub mod mock;
pub mod prelude {
pub use crate::environment::ExecutionError;
pub use crate::provider::search_in;
pub use crate::test::mock::Mock;
#[cfg(unix)]
pub use std::os::unix::process::ExitStatusExt;
#[cfg(windows)]
pub use std::os::windows::process::ExitStatusExt;
pub use std::process::ExitStatus;
pub use std::sync::Arc;
pub use super::quick_test;
pub use crate::test;
pub use crate::test::assert;
}
#[macro_export]
macro_rules! quick_test {
($provider:expr, $( $value:expr ),+) => {
tokio::runtime::Runtime::new().unwrap().block_on(async {
let provider = Arc::new(Provider::from($provider));
let mock = Mock::new();
$(
mock.push_raw($value);
)+
search_in(provider, "my-test-app", mock.to_env()).await
})
};
}
pub use quick_test;
#[macro_export]
macro_rules! default_tests {
($provider:expr) => {
#[test]
fn exec_not_found_is_requirements_error() {
let query = $crate::test::quick_test!(
$provider,
Err(ExecutionError::NotFound("foo".to_string()))
);
assert::is_err!(query);
assert::err::requirements!(query);
}
};
}
pub use default_tests;