jaml 0.2.0

A Rust library for parsing and formatting JAML (Just Another Markup Language)
Documentation
use std::{fs, path::Path};

use jaml::parse;

#[test]
fn test_all_invalid_examples() {
    let invalid_dir = Path::new("examples/invalid");

    let mut examples: Vec<_> = fs::read_dir(invalid_dir)
        .expect("Failed to read invalid examples directory")
        .filter_map(|entry| {
            let entry = entry.ok()?;
            let path = entry.path();
            if path.extension()? == "jaml" {
                Some(path)
            } else {
                None
            }
        })
        .collect();

    examples.sort();

    assert!(!examples.is_empty(), "No invalid example files found");

    for example in examples {
        let content = fs::read_to_string(&example)
            .unwrap_or_else(|e| panic!("Failed to read {:?}: {}", example, e));

        assert!(
            parse(&content).is_err(),
            "Invalid example {:?} should have failed to parse but succeeded",
            example
        );
    }
}