Parcourir la source

feat: mutation testing feb 02 (#1593)

tsk il y a 3 jours
Parent
commit
6a52ffc713
2 fichiers modifiés avec 27 ajouts et 1 suppressions
  1. 7 1
      .cargo/mutants.toml
  2. 20 0
      crates/cashu/src/nuts/nut00/mod.rs

+ 7 - 1
.cargo/mutants.toml

@@ -69,5 +69,11 @@ exclude_re = [
     "crates/cashu/src/util/mod.rs.*serialize_to_cbor_diag",
 
     # PartialOrd canonical implementation - just delegates to Ord::cmp, this is standard Rust idiom
-    "crates/cashu/src/nuts/nut00/mod.rs.*impl PartialOrd for Proof.*partial_cmp",
+    "crates/cashu/src/nuts/nut00/mod.rs:.*impl PartialOrd for Proof.*partial_cmp",
+
+    # Trivial getters in nut00
+    "crates/cashu/src/nuts/nut00/mod.rs:.*PaymentMethod::is_known",
+    "crates/cashu/src/nuts/nut00/mod.rs:.*PaymentMethod::is_custom",
+    "crates/cashu/src/nuts/nut00/mod.rs:.*PaymentMethod::is_bolt11",
+    "crates/cashu/src/nuts/nut00/mod.rs:.*impl fmt::Display for KnownMethod.*fmt",
 ]

+ 20 - 0
crates/cashu/src/nuts/nut00/mod.rs

@@ -1113,6 +1113,26 @@ mod tests {
     }
 
     #[test]
+    fn test_currency_unit_parsing() {
+        assert_eq!(CurrencyUnit::from_str("sat").unwrap(), CurrencyUnit::Sat);
+        assert_eq!(CurrencyUnit::from_str("SAT").unwrap(), CurrencyUnit::Sat);
+        assert_eq!(CurrencyUnit::from_str("msat").unwrap(), CurrencyUnit::Msat);
+        assert_eq!(CurrencyUnit::from_str("MSAT").unwrap(), CurrencyUnit::Msat);
+        assert_eq!(CurrencyUnit::from_str("usd").unwrap(), CurrencyUnit::Usd);
+        assert_eq!(CurrencyUnit::from_str("USD").unwrap(), CurrencyUnit::Usd);
+        assert_eq!(CurrencyUnit::from_str("eur").unwrap(), CurrencyUnit::Eur);
+        assert_eq!(CurrencyUnit::from_str("EUR").unwrap(), CurrencyUnit::Eur);
+        assert_eq!(CurrencyUnit::from_str("auth").unwrap(), CurrencyUnit::Auth);
+        assert_eq!(CurrencyUnit::from_str("AUTH").unwrap(), CurrencyUnit::Auth);
+
+        // Custom
+        assert_eq!(
+            CurrencyUnit::from_str("custom").unwrap(),
+            CurrencyUnit::Custom("custom".to_string())
+        );
+    }
+
+    #[test]
     fn test_payment_method_parsing() {
         // Test known methods (case insensitive)
         assert_eq!(