#[cfg(test)]
mod tests {
use rspamd_client::config::{Config, EnvelopeData};
const EMAIL: &str =
"From: user@example.com\nTo: recipient@example.com\nSubject: Test\n\nThis is a test email.";
fn encrypted_config() -> Config {
Config::builder()
.base_url("http://localhost:11333".to_string())
.encryption_key("k4nz984k36xmcynm1hr9kdbn6jhcxf4ggbrb1quay7f88rpm9kay".to_string())
.build()
}
fn envelope() -> EnvelopeData {
EnvelopeData::builder()
.from("ัะตัั@example.com".to_string())
.build()
}
#[cfg(feature = "sync")]
#[test]
fn test_sync_process() {
let client = rspamd_client::RspamdSyncClient::new(encrypted_config()).unwrap();
for _ in 0..3 {
let response = client.scan(EMAIL, envelope()).unwrap();
assert!(!response.symbols.is_empty());
}
}
#[cfg(feature = "sync")]
#[test]
fn test_sync_one_shot_wrapper() {
#[allow(deprecated)]
let response = rspamd_client::scan_sync(&encrypted_config(), EMAIL, envelope()).unwrap();
assert!(!response.symbols.is_empty());
}
#[cfg(feature = "async")]
#[tokio::test]
async fn test_async_encrypted_process() {
let client = rspamd_client::RspamdAsyncClient::new(encrypted_config()).unwrap();
for _ in 0..3 {
let response = client.scan(EMAIL, envelope()).await.unwrap();
assert!(!response.symbols.is_empty());
}
}
#[cfg(feature = "async")]
#[tokio::test]
async fn test_async_one_shot_wrapper() {
#[allow(deprecated)]
let response = rspamd_client::scan_async(&encrypted_config(), EMAIL, envelope())
.await
.unwrap();
assert!(!response.symbols.is_empty());
}
#[cfg(feature = "sync")]
#[test]
fn test_sync_file_header() {
let config = Config::builder()
.base_url("http://localhost:11333".to_string())
.build();
let envelope = EnvelopeData::builder()
.from("user@example.com".to_string())
.file_path("/tmp/test_email.eml".to_string())
.build();
let client = rspamd_client::RspamdSyncClient::new(config).unwrap();
let _response = client.scan("", envelope).unwrap();
}
#[cfg(feature = "async")]
#[tokio::test]
async fn test_async_file_header() {
let config = Config::builder()
.base_url("http://localhost:11333".to_string())
.build();
let envelope = EnvelopeData::builder()
.from("user@example.com".to_string())
.file_path("/tmp/test_email.eml".to_string())
.build();
let client = rspamd_client::RspamdAsyncClient::new(config).unwrap();
let _response = client.scan("", envelope).await.unwrap();
}
}