sz-rust-cli 1.4.0

SZ-Rust 命令行工具:项目脚手架、数据库迁移、调度器管理
Documentation
// 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"));
    }
}