shipflow 0.1.0

A minimalist, git-aware CLI for tracking what you ship
Documentation
mod common;

use predicates::prelude::*;

#[test]
fn done_marks_task_by_partial_title() {
    let temp = assert_fs::TempDir::new().unwrap();
    let repo = temp.path();
    common::init_git_repo(repo);

    common::shipflow_cmd()
        .current_dir(repo)
        .args(["add", "Fix parser edge case"])
        .assert()
        .success();

    common::shipflow_cmd()
        .current_dir(repo)
        .args(["done", "parser", "--no-link"])
        .assert()
        .success()
        .stdout(predicate::str::contains("Done"))
        .stdout(predicate::str::contains("Fix parser edge case"));

    common::shipflow_cmd()
        .current_dir(repo)
        .args(["list", "--status", "done"])
        .assert()
        .success()
        .stdout(predicate::str::contains("Fix parser edge case"));
}

#[test]
fn done_errors_on_missing_task() {
    let temp = assert_fs::TempDir::new().unwrap();
    let repo = temp.path();
    common::init_git_repo(repo);

    common::shipflow_cmd()
        .current_dir(repo)
        .args(["done", "missing", "--no-link"])
        .assert()
        .failure()
        .stderr(predicate::str::contains("task not found"));
}