// Generated by sz-rust-cli make:plugin --template {{ template_type }} --name {{ plugin_name }}
// DO NOT EDIT MANUALLY
//! Tests for report `{{ plugin_name }}` aggregation results
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_query() {
let query = {{ class_name }}ReportQuery::default();
assert!(query.page == Some(1));
assert!(query.page_size == Some(20));
assert!(query.sort_order == Some("desc".to_string()));
assert!(!query.group_by.is_empty());
}
#[test]
fn test_dimension_serialization() {
let dim = Dimension {
field: "test_field".to_string(),
value: serde_json::json!("test_value"),
};
let json = serde_json::to_string(&dim).expect("序列化失败");
assert!(json.contains("test_field"));
assert!(json.contains("test_value"));
}
#[tokio::test]
async fn test_generate_report_empty() {
let query = {{ class_name }}ReportQuery::default();
let result = {{ class_name }}Controller::generate_report(query).await;
assert!(result.is_ok());
assert!(result.unwrap().is_empty());
}
#[tokio::test]
async fn test_export_csv() {
let query = {{ class_name }}ReportQuery::default();
let result = {{ class_name }}Controller::export_csv(query).await;
assert!(result.is_ok());
let csv = result.unwrap();
assert!(csv.contains("\n"));
}
}