mod common;
use common::TestRepo;
#[test]
fn only_matches_branch_glob() {
let repo = TestRepo::new();
repo.create_worktree("feat-search");
repo.create_worktree("fix-auth");
let stdout = repo.cw_stdout(&["run", "--only", "feat-*", "--", "pwd"]);
assert!(
stdout.contains("feat-search"),
"expected feat-search in output, got: {:?}",
stdout
);
assert!(
!stdout.contains("fix-auth"),
"fix-auth should be filtered out, got: {:?}",
stdout
);
}
#[test]
fn only_matches_exact_branch_name() {
let repo = TestRepo::new();
repo.create_worktree("feat-search");
repo.create_worktree("fix-auth");
let stdout = repo.cw_stdout(&["run", "--only", "fix-auth", "--", "pwd"]);
assert!(
stdout.contains("fix-auth"),
"expected fix-auth in output, got: {:?}",
stdout
);
assert!(
!stdout.contains("feat-search"),
"feat-search should be filtered out, got: {:?}",
stdout
);
}
#[test]
fn only_matches_dir_basename_glob() {
let repo = TestRepo::new();
repo.create_worktree("feat-search");
let stdout = repo.cw_stdout(&["run", "--only", "*feat*", "--", "pwd"]);
assert!(
stdout.contains("feat-search"),
"expected feat-search via dir-basename match, got: {:?}",
stdout
);
}
#[test]
fn only_no_match_yields_empty_output() {
let repo = TestRepo::new();
repo.create_worktree("feat-search");
let stdout = repo.cw_stdout(&["run", "--only", "nonexistent-*", "--", "pwd"]);
assert!(
stdout.trim().is_empty(),
"expected empty output for non-matching glob, got: {:?}",
stdout
);
}