Browse Source

chore: test & fmt & clippy

remotes/origin/feat/support-install-latest
Fred 2 years ago
parent
commit
091cf678d6
  1. 34
      src/commands/install.rs

34
src/commands/install.rs

@ -85,8 +85,9 @@ impl super::command::Command for Install { @@ -85,8 +85,9 @@ impl super::command::Command for Install {
UserVersion::Full(Version::Latest) => {
let available_versions: Vec<_> = remote_node_index::list(&config.node_dist_mirror)
.map_err(|source| Error::CantListRemoteVersions { source })?;
let picked_version = available_versions.last()
.ok_or_else(|| Error::CantFindLatest)?
let picked_version = available_versions
.last()
.ok_or(Error::CantFindLatest)?
.version
.clone();
debug!(
@ -175,7 +176,7 @@ pub enum Error { @@ -175,7 +176,7 @@ pub enum Error {
CantFindNodeVersion { requested_version: UserVersion },
#[error("Can't find relevant LTS named {}", lts_type)]
CantFindRelevantLts { lts_type: crate::lts::LtsType },
#[error("Can't find latest version")]
#[error("Can't find any versions in the upstream version index.")]
CantFindLatest,
#[error("The requested version is not installable: {}", version.v_str())]
UninstallableVersion { version: Version },
@ -215,4 +216,31 @@ mod tests { @@ -215,4 +216,31 @@ mod tests {
.ok()
);
}
#[test]
fn test_install_latest() {
let base_dir = tempfile::tempdir().unwrap();
let config = FnmConfig::default().with_base_dir(Some(base_dir.path().to_path_buf()));
Install {
version: None,
lts: false,
latest: true,
}
.apply(&config)
.expect("Can't install");
let available_versions: Vec<_> =
remote_node_index::list(&config.node_dist_mirror).expect("Can't get node version list");
let latest_version = available_versions.last().unwrap().version.clone();
assert!(config.installations_dir().exists());
assert!(config
.installations_dir()
.join(latest_version.to_string())
.join("installation")
.canonicalize()
.unwrap()
.exists());
}
}

Loading…
Cancel
Save