mirror of
https://github.com/qwjyh/xdbm
synced 2025-06-26 17:59:20 +09:00
change init command & add integration test
- now need to specify device name via cmd arg - can use private repository with ssh key or ssh-agent - adding integration test utility crates
This commit is contained in:
parent
9935f79920
commit
4283e1e98a
8 changed files with 387 additions and 59 deletions
59
tests/cli.rs
Normal file
59
tests/cli.rs
Normal file
|
@ -0,0 +1,59 @@
|
|||
use assert_cmd::prelude::*;
|
||||
use assert_fs::prelude::*;
|
||||
|
||||
mod cmd_init {
|
||||
use anyhow::{Ok, Result};
|
||||
use assert_cmd::{cargo::CommandCargoExt, Command};
|
||||
use predicates::prelude::predicate;
|
||||
|
||||
#[test]
|
||||
fn init_with_tmpdir() -> Result<()> {
|
||||
let config_dir = assert_fs::TempDir::new()?;
|
||||
let mut cmd = Command::cargo_bin("xdbm")?;
|
||||
cmd.arg("-c")
|
||||
.arg(config_dir.path())
|
||||
.arg("init")
|
||||
.arg("testdev");
|
||||
cmd.assert().success().stdout(predicate::str::contains(""));
|
||||
assert_eq!(
|
||||
std::fs::read_to_string(config_dir.path().join("devname"))?,
|
||||
"testdev\n"
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn init_with_existing_repo() -> Result<()> {
|
||||
// 1st device
|
||||
let config_dir_1 = assert_fs::TempDir::new()?;
|
||||
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
||||
cmd1.arg("-c")
|
||||
.arg(config_dir_1.path())
|
||||
.arg("init")
|
||||
.arg("first");
|
||||
cmd1.assert().success().stdout(predicate::str::contains(""));
|
||||
|
||||
// 2nd device
|
||||
let config_dir_2 = assert_fs::TempDir::new()?;
|
||||
let mut cmd2 = Command::cargo_bin("xdbm")?;
|
||||
cmd2.arg("-c")
|
||||
.arg(config_dir_2.path())
|
||||
.arg("init")
|
||||
.arg("second")
|
||||
.arg("-r")
|
||||
.arg(config_dir_1.path());
|
||||
cmd2.assert().success().stdout(predicate::str::contains(""));
|
||||
|
||||
assert_eq!(
|
||||
std::fs::read_to_string(config_dir_2.path().join("devname"))?,
|
||||
"second\n"
|
||||
);
|
||||
assert!(
|
||||
std::fs::read_to_string(config_dir_2.path().join("devices.yml"))?.contains("first")
|
||||
);
|
||||
assert!(
|
||||
std::fs::read_to_string(config_dir_2.path().join("devices.yml"))?.contains("second")
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue