gor 0.1.0

A simple version control system written in Rust
Documentation
use gor::commands::init::{Config, create};
use std::{env, fs, path::Path};


#[test]
fn test_build_with_no_args() {
    let args = vec!["gor".to_string(), "init".to_string()];
    let config = Config::build(&args).unwrap();
    assert_eq!(config.file_path, env::current_dir().unwrap().to_str().unwrap());
}

#[test]
fn test_build_with_path() {
    let args = vec!["gor".to_string(), "init".to_string(), "custom_test".to_string()];
    let config = Config::build(&args).unwrap();
    assert_eq!(config.file_path, env::current_dir().unwrap().join(Path::new("custom_test")).to_str().unwrap());
    fs::remove_dir_all("custom_test").unwrap();
}

#[test]
fn test_build_not_dir() {
    let args = vec!["gor".to_string(), "init".to_string(), "Cargo.toml".to_string()];
    let config = Config::build(&args);
    assert!(config.is_err());
}

#[test]
fn test_build_already_exists() {
    let args = vec!["gor".to_string(), "init".to_string(), "custom_test".to_string()];
    let config = Config::build(&args).unwrap();
    let _ = create::repo(&config);

    let result = Config::build(&args);
    assert!(result.is_err());

    fs::remove_dir_all("custom_test").unwrap();
}

#[test]
fn test_run() {
    let args = vec!["gor".to_string(), "init".to_string(), "custom_test".to_string()];
    let config = Config::build(&args).unwrap();
    let result = create::repo(&config);
    assert!(result.is_ok());
    fs::remove_dir_all("custom_test").unwrap();
}