use wae_types::WaeResult as TestingResult;
pub trait TestLifecycleHook: Send + Sync {
fn before_setup(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
fn after_setup(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
fn before_teardown(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
fn after_teardown(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
}
impl<F> TestLifecycleHook for F
where
F: Fn(&crate::TestEnv) -> TestingResult<()> + Send + Sync,
{
fn after_setup(&self, env: &crate::TestEnv) -> TestingResult<()> {
self(env)
}
}
#[async_trait::async_trait]
pub trait AsyncTestLifecycleHook: Send + Sync {
async fn before_setup_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
async fn after_setup_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
async fn before_teardown_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
async fn after_teardown_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
Ok(())
}
}