summaryrefslogtreecommitdiff
path: root/test_util/src
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-09-02 13:06:42 -0400
committerGitHub <noreply@github.com>2022-09-02 13:06:42 -0400
commit5262937285e72419c6576ae1595d43f23e0c7b9d (patch)
tree591e0732e9245a65232255954454682d510eea71 /test_util/src
parent7d622a6643b3dddae4e2ff820f75ec67c8df7224 (diff)
fix(npm): respect `latest` dist tag for getting current version (#15746)
Diffstat (limited to 'test_util/src')
-rw-r--r--test_util/src/npm.rs11
1 files changed, 10 insertions, 1 deletions
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,