cruct_proc 1.0.0

Procedural macro for Cruct, enabling compile-time configuration file parsing and validation
Documentation
use syn::{Result, parse_str};

use crate::parse::MacroParams;

#[test]
fn path_value_mismatch() {
    let src = r#"load_config(path = 123)"#;
    let params: Result<MacroParams> = parse_str(src);

    if let Err(e) = params {
        assert_eq!(
            e.to_string(),
            "Invalid parameter type for 'path', expected 'String', found '123'".to_string()
        );
    }
}

#[test]
fn format_value_mismatch() {
    let src = r#"load_config(format = 123)"#;
    let params: Result<MacroParams> = parse_str(src);

    if let Err(e) = params {
        assert_eq!(
            e.to_string(),
            "Invalid parameter type for 'format', expected 'String', found '123'".to_string()
        );
    }
}

#[test]
fn priority_value_mismatch() {
    let src = r#"load_config(priority = "high")"#;
    let params: Result<MacroParams> = parse_str(src);

    if let Err(e) = params {
        assert_eq!(
            e.to_string(),
            "Invalid parameter type for 'priority', expected 'Integer', found '\"high\"'"
                .to_string()
        );
    }
}