From c0b10a8a32a3cea163d7dc43d452e308623c5e9c Mon Sep 17 00:00:00 2001 From: _cry64 Date: Wed, 18 Mar 2026 18:19:23 +1000 Subject: [PATCH] add NixVersion tests --- nixide/src/version.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/nixide/src/version.rs b/nixide/src/version.rs index 631cc67..ed891c2 100644 --- a/nixide/src/version.rs +++ b/nixide/src/version.rs @@ -90,3 +90,39 @@ impl PartialOrd for NixVersion { } } } + +#[cfg(test)] +mod tests { + use super::NixVersion; + + #[test] + fn test_parse_version() { + assert_eq!( + NixVersion::parse("2.26"), + Ok(NixVersion::new(2, 26, 0, false)) + ); + assert_eq!( + NixVersion::parse("2.33.0pre"), + Ok(NixVersion::new(2, 33, 0, true)) + ); + assert_eq!( + NixVersion::parse("2.33"), + Ok(NixVersion::new(2, 33, 0, false)) + ); + assert_eq!( + NixVersion::parse("2.33.1"), + Ok(NixVersion::new(2, 33, 1, false)) + ); + } + + #[test] + fn test_version_ordering() { + // Pre-release versions should sort before stable + assert!(NixVersion::parse("2.33.0pre").unwrap() < NixVersion::parse("2.33").unwrap()); + assert!(NixVersion::parse("2.33.0pre").unwrap() < NixVersion::parse("2.33.0").unwrap()); + + // Normal version ordering + assert!(NixVersion::parse("2.26").unwrap() < NixVersion::parse("2.33").unwrap()); + assert!(NixVersion::parse("2.33").unwrap() < NixVersion::parse("2.33.1").unwrap()); + } +}