wae_testing/environment/
hooks.rs1use wae_types::WaeResult as TestingResult;
4
5pub trait TestLifecycleHook: Send + Sync {
9 fn before_setup(&self, _env: &crate::TestEnv) -> TestingResult<()> {
15 Ok(())
16 }
17
18 fn after_setup(&self, _env: &crate::TestEnv) -> TestingResult<()> {
24 Ok(())
25 }
26
27 fn before_teardown(&self, _env: &crate::TestEnv) -> TestingResult<()> {
33 Ok(())
34 }
35
36 fn after_teardown(&self, _env: &crate::TestEnv) -> TestingResult<()> {
42 Ok(())
43 }
44}
45
46impl<F> TestLifecycleHook for F
47where
48 F: Fn(&crate::TestEnv) -> TestingResult<()> + Send + Sync,
49{
50 fn after_setup(&self, env: &crate::TestEnv) -> TestingResult<()> {
51 self(env)
52 }
53}
54
55#[async_trait::async_trait]
59pub trait AsyncTestLifecycleHook: Send + Sync {
60 async fn before_setup_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
66 Ok(())
67 }
68
69 async fn after_setup_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
75 Ok(())
76 }
77
78 async fn before_teardown_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
84 Ok(())
85 }
86
87 async fn after_teardown_async(&self, _env: &crate::TestEnv) -> TestingResult<()> {
93 Ok(())
94 }
95}