cfgmatic-source 5.0.1

Configuration sources (file, env, memory) for cfgmatic framework
Documentation
//! Tests for [`EnvSource`].

use cfgmatic_source::prelude::*;

#[test]
fn test_env_source_creation() {
    let source = EnvSource::with_prefix("TEST_APP");
    assert_eq!(source.kind(), SourceKind::Env);
}

#[test]
fn test_env_source_builder() {
    let source = EnvSource::builder()
        .prefix("MY_APP")
        .required(false)
        .build();

    assert_eq!(source.kind(), SourceKind::Env);
}

#[test]
fn test_env_source_load_optional() {
    // Test with optional source - won't fail if env vars are not set
    let source = EnvSource::builder()
        .prefix("NONEXISTENT_PREFIX_XYZ")
        .required(false)
        .build();

    let result = source.load_raw();
    assert!(result.is_ok());
}

#[test]
fn test_env_source_metadata() {
    let source = EnvSource::with_prefix("MY_APP");
    let metadata = source.metadata();

    assert_eq!(source.kind(), SourceKind::Env);
    assert!(metadata.env_var.is_some());
}