feat: add tests for git setup
Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
@@ -2,6 +2,7 @@ use cuddle_please::ui::{DynUi, Ui};
|
||||
|
||||
use std::{
|
||||
io::Write,
|
||||
path::PathBuf,
|
||||
sync::{Arc, Mutex},
|
||||
};
|
||||
|
||||
@@ -111,3 +112,17 @@ impl From<&BufferUi> for DynUi {
|
||||
value.clone().into()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn assert_output(ui: &BufferUi, expected_stdout: &str, expected_stderr: &str) {
|
||||
let (stdout, stderr) = ui.get_output();
|
||||
|
||||
assert_eq!(expected_stdout, &stdout);
|
||||
assert_eq!(expected_stderr, &stderr);
|
||||
}
|
||||
|
||||
pub fn get_test_data_path(item: &str) -> PathBuf {
|
||||
std::env::current_dir()
|
||||
.ok()
|
||||
.map(|p| p.join("testdata").join(item))
|
||||
.unwrap()
|
||||
}
|
||||
|
@@ -1,29 +1,15 @@
|
||||
pub mod common;
|
||||
|
||||
use std::path::PathBuf;
|
||||
|
||||
use common::BufferUi;
|
||||
use cuddle_please::command::Command;
|
||||
use tracing_test::traced_test;
|
||||
|
||||
use crate::common::{assert_output, get_test_data_path};
|
||||
|
||||
fn get_base_args<'a>() -> Vec<&'a str> {
|
||||
vec!["cuddle-please", "config", "list"]
|
||||
}
|
||||
|
||||
fn assert_output(ui: &BufferUi, expected_stdout: &str, expected_stderr: &str) {
|
||||
let (stdout, stderr) = ui.get_output();
|
||||
|
||||
assert_eq!(expected_stdout, &stdout);
|
||||
assert_eq!(expected_stderr, &stderr);
|
||||
}
|
||||
|
||||
fn get_test_data_path(item: &str) -> PathBuf {
|
||||
std::env::current_dir()
|
||||
.ok()
|
||||
.map(|p| p.join("testdata").join(item))
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[traced_test]
|
||||
fn test_config_from_current_dir() {
|
||||
|
21
crates/cuddle-please/tests/vcs.rs
Normal file
21
crates/cuddle-please/tests/vcs.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
pub mod common;
|
||||
|
||||
use cuddle_please::git_client::VcsClient;
|
||||
use tracing_test::traced_test;
|
||||
|
||||
use crate::common::get_test_data_path;
|
||||
|
||||
#[test]
|
||||
#[traced_test]
|
||||
fn test_vcs_get_noop() {
|
||||
let noop = VcsClient::new_noop();
|
||||
assert!(matches!(noop, VcsClient::Noop {}));
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[traced_test]
|
||||
fn test_vcs_get_git_found() {
|
||||
let testdata = get_test_data_path("git-found");
|
||||
let git = VcsClient::new_git(&testdata).unwrap();
|
||||
assert_eq!(git, VcsClient::Git { source: testdata })
|
||||
}
|
Reference in New Issue
Block a user