cot-cli 0.6.0

Command-line interface for the Cot web framework
Documentation
use std::env;
use std::path::PathBuf;

use cot_cli::new_project::{CotSource, new_project};

#[test]
#[cfg_attr(
    miri,
    ignore = "unsupported operation: extern static `pidfd_spawnp` is not supported by Miri"
)]
fn new_project_compile_test() {
    let temp_dir = tempfile::tempdir().unwrap();
    let project_path = temp_dir.path().join("my_project");

    let cot_cli_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
    let cot_workspace_path = cot_cli_path.parent().unwrap().join("cot");
    new_project(
        &project_path,
        "my_project",
        &CotSource::Path(&cot_workspace_path),
    )
    .unwrap();

    let output = cot_cli::test_utils::project_cargo(&project_path)
        .arg("run")
        .arg("--quiet")
        .arg("--")
        .arg("check")
        .output()
        .unwrap();

    let status = output.status;
    let stdout = String::from_utf8_lossy(&output.stdout);
    let stderr = String::from_utf8_lossy(&output.stderr);
    assert!(status.success(), "status: {status}, stderr: {stderr}");
    assert!(
        stdout.contains("Success verifying the configuration"),
        "status: {status}, stderr: {stderr}"
    );
}