diff --git a/src/cmd_args.rs b/src/cmd_args.rs index 28a41ec..70a8033 100644 --- a/src/cmd_args.rs +++ b/src/cmd_args.rs @@ -57,9 +57,7 @@ pub(crate) enum Commands { Check {}, /// Generate completion script. - Completion { - shell: clap_complete::Shell, - } + Completion { shell: clap_complete::Shell }, } #[derive(Args, Debug)] diff --git a/src/cmd_backup.rs b/src/cmd_backup.rs index bcfd42b..7ae9767 100644 --- a/src/cmd_backup.rs +++ b/src/cmd_backup.rs @@ -216,7 +216,7 @@ fn write_backups_list( None => { let style = Style::new().red(); (style.apply_to("---".to_string()), style) - }, + } }; if !longprint { writeln!( diff --git a/src/storages.rs b/src/storages.rs index 7562b0e..4031d61 100644 --- a/src/storages.rs +++ b/src/storages.rs @@ -1,6 +1,5 @@ //! Manipulates storages. -use console::{style, Style, StyledObject}; use crate::devices; use crate::storages::{ directory::Directory, online_storage::OnlineStorage, @@ -8,6 +7,7 @@ use crate::storages::{ }; use anyhow::{anyhow, Context, Result}; use clap::ValueEnum; +use console::{style, Style, StyledObject}; use core::panic; use serde::{Deserialize, Serialize}; use std::{collections::BTreeMap, fmt, fs, io, path}; diff --git a/src/storages/directory.rs b/src/storages/directory.rs index 7887c7b..4cd7803 100644 --- a/src/storages/directory.rs +++ b/src/storages/directory.rs @@ -180,9 +180,7 @@ mod test { local_infos, ); let mut storages = Storages::new(); - storages - .add(storages::Storage::Physical(physical)) - .unwrap(); + storages.add(storages::Storage::Physical(physical)).unwrap(); storages.add(Storage::SubDirectory(directory)).unwrap(); // assert_eq!(directory.name(), "test_name"); assert_eq!( diff --git a/tests/cli.rs b/tests/cli.rs index 45bc945..ae5bd81 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -5,11 +5,11 @@ mod integrated_test { }; use anyhow::{Context, Ok, Result}; - use assert_cmd::{assert::OutputAssertExt, Command}; + use assert_cmd::{assert::OutputAssertExt, cargo::CommandCargoExt, Command}; use dirs::home_dir; use git2::Repository; use log::trace; - use predicates::prelude::predicate; + use predicates::{boolean::PredicateBooleanExt, prelude::predicate}; /// Setup global gitconfig if it doesn't exist. /// @@ -157,7 +157,14 @@ mod integrated_test { // set up upstream branch let (mut repo_1_branch, _branch_type) = repo_1.branches(None)?.next().unwrap()?; println!("head {}", repo_1.head().unwrap().name().unwrap()); - repo_1_branch.set_upstream(Some(format!("{}/{}", upstream_name, repo_1_branch.name().unwrap().unwrap()).as_str()))?; + repo_1_branch.set_upstream(Some( + format!( + "{}/{}", + upstream_name, + repo_1_branch.name().unwrap().unwrap() + ) + .as_str(), + ))?; // 2nd device let config_dir_2 = assert_fs::TempDir::new()?; @@ -231,7 +238,14 @@ mod integrated_test { println!("{:?}", bare_repo_dir.read_dir()?); // set up upstream branch let (mut repo_1_branch, _branch_type) = repo_1.branches(None)?.next().unwrap()?; - repo_1_branch.set_upstream(Some(format!("{}/{}", upstream_name, repo_1_branch.name().unwrap().unwrap()).as_str()))?; + repo_1_branch.set_upstream(Some( + format!( + "{}/{}", + upstream_name, + repo_1_branch.name().unwrap().unwrap() + ) + .as_str(), + ))?; // 2nd device let config_dir_2 = assert_fs::TempDir::new()?; @@ -358,6 +372,7 @@ mod integrated_test { .assert() .success(); + // storage list Command::cargo_bin("xdbm")? .arg("-c") .arg(config_dir_2.path()) @@ -365,7 +380,9 @@ mod integrated_test { .arg("list") .arg("-l") .assert() - .success(); + .success() + .stdout(predicate::str::contains("gdrive_docs").and(predicate::str::contains("nas"))); + // backup add let backup_src = &sample_storage_2.join("foo").join("bar"); DirBuilder::new().recursive(true).create(backup_src)?; @@ -387,6 +404,7 @@ mod integrated_test { .assert() .success(); + // backup add but with existing name Command::cargo_bin("xdbm")? .arg("-c") .arg(config_dir_2.path()) @@ -404,6 +422,32 @@ mod integrated_test { .failure() .stderr(predicate::str::contains("already")); + // backup list + Command::cargo_bin("xdbm")? + .arg("-c") + .arg(config_dir_2.path()) + .arg("backup") + .arg("list") + .assert() + .success() + .stdout( + predicate::str::contains("foodoc") + .and(predicate::str::contains("nas")) + .and(predicate::str::contains("gdrive_docs")) + .and(predicate::str::contains("---")), + ); + + // backup done + Command::cargo_bin("xdbm")? + .arg("-c") + .arg(config_dir_2.path()) + .arg("backup") + .arg("done") + .arg("foodoc") + .arg("0") + .assert() + .success(); + Ok(()) } }