diff --git a/proxmox-notify/src/context/mod.rs b/proxmox-notify/src/context/mod.rs index b419641b..cc686030 100644 --- a/proxmox-notify/src/context/mod.rs +++ b/proxmox-notify/src/context/mod.rs @@ -7,6 +7,8 @@ pub mod common; pub mod pbs; #[cfg(feature = "pve-context")] pub mod pve; +#[cfg(test)] +mod test; /// Product-specific context pub trait Context: Send + Sync + Debug { @@ -22,12 +24,10 @@ pub trait Context: Send + Sync + Debug { fn default_config(&self) -> &'static str; } -#[cfg(not(feature = "pve-context"))] +#[cfg(not(test))] static CONTEXT: Mutex> = Mutex::new(None); -// The test unfortunately require context... -// TODO: Check if we can make this nicer... -#[cfg(feature = "pve-context")] -static CONTEXT: Mutex> = Mutex::new(Some(&pve::PVE_CONTEXT)); +#[cfg(test)] +static CONTEXT: Mutex> = Mutex::new(Some(&test::TestContext)); /// Set the product-specific context pub fn set_context(context: &'static dyn Context) { diff --git a/proxmox-notify/src/context/test.rs b/proxmox-notify/src/context/test.rs new file mode 100644 index 00000000..61f794aa --- /dev/null +++ b/proxmox-notify/src/context/test.rs @@ -0,0 +1,26 @@ +use crate::context::Context; + +#[derive(Debug)] +pub struct TestContext; + +impl Context for TestContext { + fn lookup_email_for_user(&self, _user: &str) -> Option { + Some("test@example.com".into()) + } + + fn default_sendmail_author(&self) -> String { + "Proxmox VE".into() + } + + fn default_sendmail_from(&self) -> String { + "root".into() + } + + fn http_proxy_config(&self) -> Option { + None + } + + fn default_config(&self) -> &'static str { + "" + } +}