mirror of
https://github.com/qwjyh/xdbm
synced 2025-06-08 17:15:38 +09:00
Merge 30ae6a6417
into 6bb1893fa2
This commit is contained in:
commit
f2c36f1529
2 changed files with 49 additions and 1 deletions
22
.github/workflows/rust.yml
vendored
Normal file
22
.github/workflows/rust.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
name: Rust
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
CARGO_TERM_COLOR: always
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Build
|
||||||
|
run: cargo build --verbose
|
||||||
|
- name: Run tests
|
||||||
|
run: cargo test --verbose
|
28
tests/cli.rs
28
tests/cli.rs
|
@ -1,5 +1,9 @@
|
||||||
mod integrated_test {
|
mod integrated_test {
|
||||||
use std::fs::DirBuilder;
|
use std::{
|
||||||
|
fs::{DirBuilder, File},
|
||||||
|
io::{BufWriter, Write},
|
||||||
|
path::Path,
|
||||||
|
};
|
||||||
|
|
||||||
use anyhow::{Ok, Result};
|
use anyhow::{Ok, Result};
|
||||||
use assert_cmd::{assert::OutputAssertExt, Command};
|
use assert_cmd::{assert::OutputAssertExt, Command};
|
||||||
|
@ -7,9 +11,27 @@ mod integrated_test {
|
||||||
use log::trace;
|
use log::trace;
|
||||||
use predicates::prelude::predicate;
|
use predicates::prelude::predicate;
|
||||||
|
|
||||||
|
fn setup_gitconfig(dir_path: &Path) -> Result<()> {
|
||||||
|
DirBuilder::new().create(dir_path.join(".git"))?;
|
||||||
|
{
|
||||||
|
let f = File::create(dir_path.join(".git/config"))?;
|
||||||
|
let mut buf = BufWriter::new(f);
|
||||||
|
buf.write_all(
|
||||||
|
r#"
|
||||||
|
[user]
|
||||||
|
email = "test@example.com"
|
||||||
|
name = "testuser"
|
||||||
|
"#
|
||||||
|
.as_bytes(),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn single_device() -> Result<()> {
|
fn single_device() -> Result<()> {
|
||||||
let config_dir = assert_fs::TempDir::new()?;
|
let config_dir = assert_fs::TempDir::new()?;
|
||||||
|
setup_gitconfig(&config_dir)?;
|
||||||
// init
|
// init
|
||||||
let mut cmd = Command::cargo_bin("xdbm")?;
|
let mut cmd = Command::cargo_bin("xdbm")?;
|
||||||
cmd.arg("-c")
|
cmd.arg("-c")
|
||||||
|
@ -103,6 +125,7 @@ mod integrated_test {
|
||||||
fn two_devices_with_same_name() -> Result<()> {
|
fn two_devices_with_same_name() -> Result<()> {
|
||||||
// 1st device
|
// 1st device
|
||||||
let config_dir_1 = assert_fs::TempDir::new()?;
|
let config_dir_1 = assert_fs::TempDir::new()?;
|
||||||
|
setup_gitconfig(&config_dir_1)?;
|
||||||
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
||||||
cmd1.arg("-c")
|
cmd1.arg("-c")
|
||||||
.arg(config_dir_1.path())
|
.arg(config_dir_1.path())
|
||||||
|
@ -127,6 +150,7 @@ mod integrated_test {
|
||||||
|
|
||||||
// 2nd device
|
// 2nd device
|
||||||
let config_dir_2 = assert_fs::TempDir::new()?;
|
let config_dir_2 = assert_fs::TempDir::new()?;
|
||||||
|
setup_gitconfig(&config_dir_2)?;
|
||||||
let mut cmd2 = Command::cargo_bin("xdbm")?;
|
let mut cmd2 = Command::cargo_bin("xdbm")?;
|
||||||
cmd2.arg("-c")
|
cmd2.arg("-c")
|
||||||
.arg(config_dir_2.path())
|
.arg(config_dir_2.path())
|
||||||
|
@ -142,6 +166,7 @@ mod integrated_test {
|
||||||
fn directory_without_parent() -> Result<()> {
|
fn directory_without_parent() -> Result<()> {
|
||||||
// 1st device
|
// 1st device
|
||||||
let config_dir_1 = assert_fs::TempDir::new()?;
|
let config_dir_1 = assert_fs::TempDir::new()?;
|
||||||
|
setup_gitconfig(&config_dir_1)?;
|
||||||
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
||||||
cmd1.arg("-c")
|
cmd1.arg("-c")
|
||||||
.arg(config_dir_1.path())
|
.arg(config_dir_1.path())
|
||||||
|
@ -174,6 +199,7 @@ mod integrated_test {
|
||||||
fn two_devices() -> Result<()> {
|
fn two_devices() -> Result<()> {
|
||||||
// 1st device
|
// 1st device
|
||||||
let config_dir_1 = assert_fs::TempDir::new()?;
|
let config_dir_1 = assert_fs::TempDir::new()?;
|
||||||
|
setup_gitconfig(&config_dir_1)?;
|
||||||
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
let mut cmd1 = Command::cargo_bin("xdbm")?;
|
||||||
cmd1.arg("-c")
|
cmd1.arg("-c")
|
||||||
.arg(config_dir_1.path())
|
.arg(config_dir_1.path())
|
||||||
|
|
Loading…
Add table
Reference in a new issue