#[cfg(test)]
mod utils;
#[cfg(test)]
mod config_tests {
use tempdir::TempDir;
use treeflow::utils::Return;
use crate::utils::treeflow_command::TreeflowCommand;
#[test]
fn print_empty_configuration() {
let config_dir = TempDir::new("config_dir").expect("Temp dir");
TreeflowCommand::new(config_dir.into_path())
.config()
.cmd()
.assert()
.success()
.stdout("work_types = []\nprojects = []\n");
}
#[test]
fn add_work_type_updates_config() {
let config_dir = TempDir::new("config_dir").expect("Temp dir");
let current_dir = TempDir::new("current_dir").expect("Temp dir");
let work_type_name = "feature";
let work_type_prefix = "feature/";
TreeflowCommand::new(config_dir.path().to_path_buf())
.worktype_add(work_type_name, work_type_prefix)
.current_dir(current_dir.path())
.cmd()
.assert()
.success()
.stdout(Return::Null { }.print());
TreeflowCommand::new(config_dir.path().to_path_buf())
.config()
.cmd()
.assert()
.success()
.stdout("projects = []\n\n[[work_types]]\ntype_name = \"feature\"\nprefix = \"feature/\"\n");
}
#[test]
fn add_project_updates_config() {
let config_dir = TempDir::new("config_dir").expect("should be able to create temp config dir");
let current_dir =
TempDir::new("current_dir").expect("should be able to create temp current dir");
let repository_path = current_dir.path().to_path_buf();
let worktrees_path = current_dir.path().join("worktrees");
TreeflowCommand::new(config_dir.path().to_path_buf())
.project_add(&repository_path, Some(&worktrees_path))
.current_dir(current_dir.path())
.cmd()
.assert()
.success()
.stdout(Return::Null { }.print());
TreeflowCommand::new(config_dir.path().to_path_buf())
.config()
.cmd()
.assert()
.success()
.stdout(format!(
"work_types = []\n\n[[projects]]\nrepository = \"{0}\"\nworktrees = \"{1}\"\n",
repository_path.display(),
worktrees_path.display()
));
}
}