submodule-kit 0.2.2

A CLI toolkit for managing git submodules
Documentation
use super::*;
use std::fs;
use tempfile::tempdir;

#[test]
fn run_all_conditions_with_empty_submodules() {
    let _guard = CWD_MUTEX.lock().unwrap();
    let dir = tempdir().unwrap();
    let original = std::env::current_dir().unwrap();
    fs::write(dir.path().join(crate::strings::GITMODULES_FILE), "").unwrap();
    git2::Repository::init(dir.path()).unwrap();
    std::env::set_current_dir(dir.path()).unwrap();
    let conditions = vec![
        IsCondition::Populated,
        IsCondition::Clean,
        IsCondition::OnBranch,
        IsCondition::Synced,
        IsCondition::AllUpToDate,
    ];
    let result = run(conditions);
    std::env::set_current_dir(&original).unwrap();
    assert_eq!(result.unwrap(), true);
}

#[test]
fn run_returns_error_when_no_gitmodules_file() {
    let _guard = CWD_MUTEX.lock().unwrap();
    let dir = tempdir().unwrap();
    let original = std::env::current_dir().unwrap();
    std::env::set_current_dir(dir.path()).unwrap();
    for cond in [
        IsCondition::Populated,
        IsCondition::Clean,
        IsCondition::OnBranch,
        IsCondition::Synced,
        IsCondition::AllUpToDate,
    ] {
        assert!(run(vec![cond]).is_err());
    }
    std::env::set_current_dir(&original).unwrap();
}