cfgmatic-source 5.0.1

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

use cfgmatic_source::prelude::*;

#[test]
fn test_source_error_not_found() {
    let error = SourceError::not_found("config.toml");
    assert!(error.to_string().contains("config.toml"));
    assert!(error.to_string().contains("not found"));
}

#[test]
fn test_source_error_parse_failed() {
    let error = SourceError::parse_failed("config.toml", "toml", "invalid syntax");
    assert!(error.to_string().contains("toml"));
    assert!(error.to_string().contains("invalid syntax"));
}

#[test]
fn test_source_error_io() {
    let error = SourceError::io("permission denied");
    assert!(error.to_string().contains("IO error"));
}

#[test]
fn test_source_error_invalid_format() {
    let error = SourceError::invalid_format("toml", "yaml");
    assert!(error.to_string().contains("Invalid format"));
    assert!(error.to_string().contains("toml"));
    assert!(error.to_string().contains("yaml"));
}

#[test]
fn test_source_error_from_io_error() {
    let io_error = std::io::Error::new(std::io::ErrorKind::PermissionDenied, "access denied");
    let error: SourceError = io_error.into();
    assert!(error.is_io());
}