submodule-kit 0.1.0

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

#[test]
fn list_with_submodules_branch_and_no_branch() {
    let _guard = crate::commands::is::CWD_MUTEX.lock().unwrap();
    let dir = tempdir().unwrap();
    let original = std::env::current_dir().unwrap();
    let gitmodules = concat!(
        "[submodule \"with\"]\n",
        "    path = with\n",
        "    url = https://example.com/with.git\n",
        "    branch = main\n",
        "[submodule \"without\"]\n",
        "    path = without\n",
        "    url = https://example.com/without.git\n",
    );
    fs::write(dir.path().join(crate::strings::GITMODULES_FILE), gitmodules).unwrap();
    std::env::set_current_dir(dir.path()).unwrap();
    let result = run();
    std::env::set_current_dir(&original).unwrap();
    assert!(result.is_ok());
}

#[test]
fn list_fails_when_no_gitmodules_file() {
    let _guard = crate::commands::is::CWD_MUTEX.lock().unwrap();
    let dir = tempdir().unwrap();
    let original = std::env::current_dir().unwrap();
    std::env::set_current_dir(dir.path()).unwrap();
    let result = run();
    std::env::set_current_dir(&original).unwrap();
    assert!(result.is_err());
}