dockerfile-parser-rs 3.3.0

The ultimate Rust library for parsing, modifying, and generating Dockerfiles
Documentation
use std::io::Write;

use dockerfile_parser_rs::Dockerfile;
use dockerfile_parser_rs::ParseError;

#[test]
fn test_parse() {
    let path = std::path::PathBuf::from("tests/dockerfiles/simple/Dockerfile");
    Dockerfile::from(path).unwrap();
}

#[test]
fn test_parse_and_dump() {
    let path = std::path::PathBuf::from("tests/dockerfiles/complex/Dockerfile");
    let dockerfile = Dockerfile::from(path.clone()).unwrap();

    let temp_file = std::env::temp_dir().join("Dockerfile.complex");
    dockerfile.dump(temp_file.clone()).unwrap();

    let original_content = std::fs::read_to_string(path).unwrap();
    let dumped_content = std::fs::read_to_string(temp_file).unwrap();
    assert_eq!(original_content, dumped_content);
}
#[test]
fn test_invalid_instruction_name() {
    let temp_file = std::env::temp_dir().join("Dockerfile.temp");

    let mut file = std::fs::File::create(temp_file.clone()).unwrap();
    writeln!(file, "MAKE love").unwrap();

    let result = Dockerfile::from(temp_file);
    assert!(matches!(result, Err(ParseError::UnknownInstruction(_))));
}