Skip to content

Commit 6728325

Browse files
committed
Add testcase
1 parent 0ebe277 commit 6728325

4 files changed

Lines changed: 110 additions & 0 deletions

File tree

crates/node/src/registry.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,4 +774,43 @@ mod tests {
774774
// Confirm it did NOT pick 19.0.0-rc.1 (which would happen if fast path was skipped)
775775
assert_ne!(result.selected.as_deref(), Some("19.0.0-rc.1"));
776776
}
777+
778+
#[test]
779+
fn test_new_creates_registry() {
780+
install_crypto_provider();
781+
let _registry = NpmRegistry::new();
782+
// Just verifying it doesn't panic
783+
}
784+
785+
#[test]
786+
fn test_default_creates_registry() {
787+
install_crypto_provider();
788+
let _registry = NpmRegistry::default();
789+
}
790+
791+
#[test]
792+
fn test_satisfies_range_invalid_range() {
793+
assert!(!satisfies_range("not a range!!!", "1.0.0"));
794+
}
795+
796+
#[test]
797+
fn test_satisfies_range_invalid_version() {
798+
assert!(!satisfies_range("^1.0.0", "not.a"));
799+
}
800+
801+
#[test]
802+
fn test_select_version_minor_unparseable_falls_back_to_latest() {
803+
let latest = "2.0.0".to_owned();
804+
let versions = make_versions(&["1.0.0", "2.0.0"]);
805+
let result = select_version("*", Some(&latest), &versions, TargetLevel::Minor);
806+
assert_eq!(result, Some("2.0.0".to_owned()));
807+
}
808+
809+
#[test]
810+
fn test_select_version_patch_unparseable_falls_back_to_latest() {
811+
let latest = "2.0.0".to_owned();
812+
let versions = make_versions(&["1.0.0", "2.0.0"]);
813+
let result = select_version("*", Some(&latest), &versions, TargetLevel::Patch);
814+
assert_eq!(result, Some("2.0.0".to_owned()));
815+
}
777816
}

crates/python/src/registry.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,4 +327,16 @@ mod tests {
327327

328328
assert_eq!(result.selected, Some("1.2.3".to_owned()));
329329
}
330+
331+
#[test]
332+
fn test_new_creates_registry() {
333+
install_crypto_provider();
334+
let _registry = PyPiRegistry::new();
335+
}
336+
337+
#[test]
338+
fn test_default_creates_registry() {
339+
install_crypto_provider();
340+
let _registry = PyPiRegistry::default();
341+
}
330342
}

crates/rust/src/parser.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,19 @@ serde = "1.0"
504504
assert!(result.is_err());
505505
}
506506

507+
#[test]
508+
fn test_array_dep_value_skipped() {
509+
let toml = r#"
510+
[dependencies]
511+
serde = "1.0"
512+
weird = [1, 2, 3]
513+
"#;
514+
let manifest = CargoTomlManifest::parse(toml).unwrap();
515+
// "weird" with array value should be skipped
516+
assert_eq!(manifest.dependencies.len(), 1);
517+
assert_eq!(manifest.dependencies[0].name, "serde");
518+
}
519+
507520
#[test]
508521
fn test_skip_workspace_true_full_table_form() {
509522
// Full [dependencies.name] Table form with workspace = true

crates/rust/src/registry.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,4 +593,50 @@ mod tests {
593593
// 1.0.0 satisfies ^1.0.0, so selected is None
594594
assert_eq!(result.selected, None);
595595
}
596+
597+
#[test]
598+
fn test_new_creates_registry() {
599+
install_tls_provider();
600+
let _registry = CratesIoRegistry::new();
601+
}
602+
603+
#[test]
604+
fn test_default_creates_registry() {
605+
install_tls_provider();
606+
let _registry = CratesIoRegistry::default();
607+
}
608+
609+
#[test]
610+
fn test_select_version_empty_versions() {
611+
let latest = "1.0.0".to_owned();
612+
let versions: Vec<semver::Version> = vec![];
613+
let result = select_version("^1.0.0", Some(&latest), &versions, TargetLevel::Latest);
614+
assert_eq!(result, Some("1.0.0".to_owned()));
615+
}
616+
617+
#[test]
618+
fn test_select_version_minor_unparseable_falls_back() {
619+
let latest = "2.0.0".to_owned();
620+
let versions = make_versions(&["1.0.0", "2.0.0"]);
621+
let result = select_version("*", Some(&latest), &versions, TargetLevel::Minor);
622+
assert_eq!(result, Some("2.0.0".to_owned()));
623+
}
624+
625+
#[test]
626+
fn test_select_version_patch_unparseable_falls_back() {
627+
let latest = "2.0.0".to_owned();
628+
let versions = make_versions(&["1.0.0", "2.0.0"]);
629+
let result = select_version("*", Some(&latest), &versions, TargetLevel::Patch);
630+
assert_eq!(result, Some("2.0.0".to_owned()));
631+
}
632+
633+
#[test]
634+
fn test_satisfies_req_invalid_req() {
635+
assert!(!satisfies_req("not valid!!!", "1.0.0"));
636+
}
637+
638+
#[test]
639+
fn test_satisfies_req_invalid_version() {
640+
assert!(!satisfies_req("^1.0.0", "not.valid"));
641+
}
596642
}

0 commit comments

Comments
 (0)