use super::{base_export_args, resolved_for_dir};
use crate::cli::Cli;
use crate::cli::queue::export;
use clap::CommandFactory;
use tempfile::TempDir;
#[test]
fn queue_export_rejects_conflicting_archive_flags() {
let dir = TempDir::new().expect("temp dir");
let resolved = resolved_for_dir(&dir);
let mut args = base_export_args();
args.include_archive = true;
args.only_archive = true;
let err = export::handle(&resolved, args).expect_err("expected error");
let msg = err.to_string();
assert!(
msg.contains("Conflicting flags")
&& msg.contains("--include-archive")
&& msg.contains("--only-archive"),
"unexpected error: {msg}"
);
}
#[test]
fn queue_export_help_examples_expanded() {
let mut cmd = Cli::command();
let queue = cmd.find_subcommand_mut("queue").expect("queue subcommand");
let export_cmd = queue
.find_subcommand_mut("export")
.expect("queue export subcommand");
let help = export_cmd.render_long_help().to_string();
assert!(
help.contains("ralph queue export"),
"missing export example: {help}"
);
assert!(
help.contains("--format csv"),
"missing format example: {help}"
);
assert!(
help.contains("--output tasks.csv"),
"missing output example: {help}"
);
}