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 {
UserVersion::Full(Version::Latest) => { UserVersion::Full(Version::Latest) => {
let available_versions: Vec<_> = remote_node_index::list(&config.node_dist_mirror) let available_versions: Vec<_> = remote_node_index::list(&config.node_dist_mirror)
.map_err(|source| Error::CantListRemoteVersions { source })?; .map_err(|source| Error::CantListRemoteVersions { source })?;
let picked_version = available_versions.last() let picked_version = available_versions
.ok_or_else(|| Error::CantFindLatest)? .last()
.ok_or(Error::CantFindLatest)?
.version .version
.clone(); .clone();
debug!( debug!(
@ -175,7 +176,7 @@ pub enum Error {
CantFindNodeVersion { requested_version: UserVersion }, CantFindNodeVersion { requested_version: UserVersion },
#[error("Can't find relevant LTS named {}", lts_type)] #[error("Can't find relevant LTS named {}", lts_type)]
CantFindRelevantLts { lts_type: crate::lts::LtsType }, CantFindRelevantLts { lts_type: crate::lts::LtsType },
#[error("Can't find latest version")] #[error("Can't find any versions in the upstream version index.")]
CantFindLatest, CantFindLatest,
#[error("The requested version is not installable: {}", version.v_str())] #[error("The requested version is not installable: {}", version.v_str())]
UninstallableVersion { version: Version }, UninstallableVersion { version: Version },
@ -215,4 +216,31 @@ mod tests {
.ok() .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