pray-cli 1.22.0

Package manager for the language placed before inference — Prayfile CLI (binary: pray)
#[path = "install_support.rs"]
mod support;

use std::fs;

use support::{create_fixture, run_pray, temporary_directory};

#[test]
fn render_check_accepts_unmarked_text_that_install_keeps() {
    let repo = temporary_directory("pray-render-check-unmarked");
    create_fixture(&repo);
    assert!(run_pray(&repo, &["install"]).status.success());

    let rendered_path = repo.join("INSTRUCTIONS.md");
    let rendered = fs::read_to_string(&rendered_path).expect("rendered file exists");
    let rendered = rendered.replace(
        "## Additional instructions\n",
        "## Additional instructions\n\nExtra unmarked line\n",
    );
    fs::write(&rendered_path, rendered).expect("rendered file rewritten");
    assert!(run_pray(&repo, &["install"]).status.success());

    let check = run_pray(&repo, &["render", "--check"]);
    assert!(
        check.status.success(),
        "render --check failed:\n{}",
        String::from_utf8_lossy(&check.stderr)
    );
}

#[test]
fn render_check_rejects_an_edited_managed_span() {
    let repo = temporary_directory("pray-render-check-edited");
    create_fixture(&repo);
    assert!(run_pray(&repo, &["install"]).status.success());

    let rendered_path = repo.join("INSTRUCTIONS.md");
    let rendered = fs::read_to_string(&rendered_path).expect("rendered file exists");
    let rendered = rendered.replace("Testing guidance\n", "Edited testing guidance\n");
    fs::write(&rendered_path, rendered).expect("rendered file rewritten");

    let check = run_pray(&repo, &["render", "--check"]);
    assert_eq!(check.status.code(), Some(5));
}