mirror of
https://github.com/gitui-org/gitui
synced 2026-05-23 08:58:21 +00:00
Add unit tests for update module
This commit is contained in:
parent
bdae3231b5
commit
ad37dc6be4
2 changed files with 105 additions and 0 deletions
|
|
@ -147,3 +147,47 @@ fn has_pacman_installation() -> bool {
|
|||
fn has_pacman_installation() -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_install_method_display() {
|
||||
assert_eq!(InstallMethod::Cargo.to_string(), "cargo");
|
||||
assert_eq!(InstallMethod::Homebrew.to_string(), "homebrew");
|
||||
assert_eq!(InstallMethod::Apt.to_string(), "apt");
|
||||
assert_eq!(InstallMethod::Dnf.to_string(), "dnf");
|
||||
assert_eq!(InstallMethod::Pacman.to_string(), "pacman");
|
||||
assert_eq!(InstallMethod::Windows.to_string(), "windows");
|
||||
assert_eq!(InstallMethod::Scoop.to_string(), "scoop");
|
||||
assert_eq!(
|
||||
InstallMethod::Chocolatey.to_string(),
|
||||
"chocolatey"
|
||||
);
|
||||
assert_eq!(
|
||||
InstallMethod::ScoopBucket.to_string(),
|
||||
"scoop-bucket"
|
||||
);
|
||||
assert_eq!(InstallMethod::Unknown.to_string(), "unknown");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_install_method_equality() {
|
||||
assert_eq!(InstallMethod::Cargo, InstallMethod::Cargo);
|
||||
assert_ne!(InstallMethod::Cargo, InstallMethod::Dnf);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_install_method_clone() {
|
||||
let method = InstallMethod::Dnf;
|
||||
let cloned = method.clone();
|
||||
assert_eq!(method, cloned);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_install_method_debug() {
|
||||
let debug_str = format!("{:?}", InstallMethod::Cargo);
|
||||
assert!(debug_str.contains("Cargo"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,3 +168,64 @@ fn confirm(prompt: &str) -> Result<bool> {
|
|||
|
||||
Ok(input.trim().eq_ignore_ascii_case("y"))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_nightly() {
|
||||
assert!(is_prerelease("0.28.1-nightly"));
|
||||
assert!(is_prerelease("0.28.1-NIGHTLY"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_rc() {
|
||||
assert!(is_prerelease("0.28.1-rc.1"));
|
||||
assert!(is_prerelease("0.28.1-RC.1"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_beta() {
|
||||
assert!(is_prerelease("0.28.1-beta"));
|
||||
assert!(is_prerelease("0.28.0-beta.2"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_alpha() {
|
||||
assert!(is_prerelease("0.28.1-alpha"));
|
||||
assert!(is_prerelease("0.28.0-alpha.1"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_dev() {
|
||||
assert!(is_prerelease("0.28.1-dev"));
|
||||
assert!(is_prerelease("0.28.0-dev.20240101"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_preview() {
|
||||
assert!(is_prerelease("0.28.1-preview"));
|
||||
assert!(is_prerelease("0.28.0-preview.3"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_prerelease_snapshot() {
|
||||
assert!(is_prerelease("0.28.1-snapshot"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_not_prerelease_stable() {
|
||||
assert!(!is_prerelease("0.28.1"));
|
||||
assert!(!is_prerelease("0.28.0"));
|
||||
assert!(!is_prerelease("1.0.0"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_not_prerelease_version_with_prerelease_substring() {
|
||||
// Ensure we don't false-positive on versions that contain prerelease keywords
|
||||
// but aren't actually prereleases (e.g., "0.28.1-nightly-feature" wouldn't be valid anyway)
|
||||
assert!(is_prerelease("0.28.1-nightly"));
|
||||
assert!(!is_prerelease("0.28.1"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue