cstats-core 0.1.1

Core library for cstats - statistical analysis and metrics collection
Documentation
//! Configuration tests

use super::*;

#[test]
fn test_default_config_paths() {
    // Test that default config directory can be determined
    let config_dir = Config::default_config_dir();
    assert!(config_dir.is_ok());

    let config_path = Config::default_config_path();
    assert!(config_path.is_ok());

    if let Ok(path) = config_path {
        assert!(path.ends_with(".cstats/config.json"));
    }
}

#[tokio::test]
async fn test_config_validation() {
    let mut config = Config::default();

    // Valid config should pass
    assert!(config.validate().is_ok());

    // Invalid database config
    config.database.url = String::new();
    assert!(config.validate().is_err());

    config = Config::default();
    config.database.max_connections = 0;
    assert!(config.validate().is_err());

    // Invalid cache config
    config = Config::default();
    config.cache.max_size_bytes = 0;
    assert!(config.validate().is_err());

    // Invalid stats config
    config = Config::default();
    config.stats.sampling_rate = -0.1;
    assert!(config.validate().is_err());

    config = Config::default();
    config.stats.sampling_rate = 1.1;
    assert!(config.validate().is_err());
}