changen 0.1.10

Helper program to manage a changelog
Documentation
use pretty_assertions::assert_eq;
use std::{fs::OpenOptions, io::Write};

use changelog::{
    de::parse_changelog,
    ser::{serialize_changelog, Options},
};

use crate::config::MapMessageToSection;

#[test]
fn validate_default_changelog() {
    let input = include_str!("../res/CHANGELOG_DEFAULT.md");

    let changelog = parse_changelog(input).unwrap();

    let output = serialize_changelog(&changelog, &Options::default());

    assert_eq!(input, output);
}

#[test]
fn validate_default_map() {
    let map = include_str!("../res/map_commit_type_to_section.json");
    serde_json::de::from_str::<MapMessageToSection>(map).unwrap();
}

#[test]
fn format_default_changelog() {
    let input = include_str!("../res/CHANGELOG_DEFAULT.md");

    let changelog = parse_changelog(input).unwrap();

    let output = serialize_changelog(&changelog, &Options::default());

    let mut file = OpenOptions::new()
        .create(true)
        .truncate(true)
        .write(true)
        .open("./res/CHANGELOG_DEFAULT.md")
        .unwrap();

    file.write_all(output.as_bytes()).unwrap();
}