summaryrefslogtreecommitdiff
path: root/test_util
diff options
context:
space:
mode:
Diffstat (limited to 'test_util')
-rw-r--r--test_util/Cargo.toml1
-rw-r--r--test_util/src/npm.rs11
2 files changed, 11 insertions, 1 deletions
diff --git a/test_util/Cargo.toml b/test_util/Cargo.toml
index 8d9da66e2..7fa309dac 100644
--- a/test_util/Cargo.toml
+++ b/test_util/Cargo.toml
@@ -28,6 +28,7 @@ regex = "1.6.0"
reqwest = { version = "0.11.11", default-features = false, features = ["rustls-tls", "stream", "gzip", "brotli", "socks"] }
ring = "0.16.20"
rustls-pemfile = "1.0.0"
+semver = "1.0.13"
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.79"
tar = "0.4.38"
diff --git a/test_util/src/npm.rs b/test_util/src/npm.rs
index fad59e3b8..6e393d835 100644
--- a/test_util/src/npm.rs
+++ b/test_util/src/npm.rs
@@ -71,6 +71,7 @@ fn get_npm_package(package_name: &str) -> Result<Option<CustomNpmPackage>> {
// read all the package's versions
let mut tarballs = HashMap::new();
let mut versions = serde_json::Map::new();
+ let mut latest_version = semver::Version::parse("0.0.0").unwrap();
for entry in fs::read_dir(&package_folder)? {
let entry = entry?;
let file_type = entry.file_type()?;
@@ -134,13 +135,21 @@ fn get_npm_package(package_name: &str) -> Result<Option<CustomNpmPackage>> {
let mut version_info: serde_json::Map<String, serde_json::Value> =
serde_json::from_str(&package_json_text)?;
version_info.insert("dist".to_string(), dist.into());
- versions.insert(version, version_info.into());
+ versions.insert(version.clone(), version_info.into());
+ let version = semver::Version::parse(&version)?;
+ if version.cmp(&latest_version).is_gt() {
+ latest_version = version;
+ }
}
+ let mut dist_tags = serde_json::Map::new();
+ dist_tags.insert("latest".to_string(), latest_version.to_string().into());
+
// create the registry file for this package
let mut registry_file = serde_json::Map::new();
registry_file.insert("name".to_string(), package_name.to_string().into());
registry_file.insert("versions".to_string(), versions.into());
+ registry_file.insert("dist-tags".to_string(), dist_tags.into());
Ok(Some(CustomNpmPackage {
registry_file: serde_json::to_string(&registry_file).unwrap(),
tarballs,