mirror of
https://github.com/Llewellynvdm/starship.git
synced 2024-11-24 21:57:41 +00:00
fix(nodejs): apply style
even if node version is unavailable (#4713)
* correct nodejs color * Update src/modules/nodejs.rs Co-authored-by: David Knaack <davidkna@users.noreply.github.com> * Update src/modules/nodejs.rs Co-authored-by: David Knaack <davidkna@users.noreply.github.com> * fix: removed unecessary unwraps * test: no node installed * test: no node installed Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
This commit is contained in:
parent
af5e506192
commit
e88484d567
@ -45,7 +45,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
"style" => {
|
"style" => {
|
||||||
let engines_version = get_engines_version(context);
|
let engines_version = get_engines_version(context);
|
||||||
let in_engines_range =
|
let in_engines_range =
|
||||||
check_engines_version(nodejs_version.deref().as_ref()?, engines_version);
|
check_engines_version(nodejs_version.as_deref(), engines_version);
|
||||||
if in_engines_range {
|
if in_engines_range {
|
||||||
Some(Ok(config.style))
|
Some(Ok(config.style))
|
||||||
} else {
|
} else {
|
||||||
@ -92,11 +92,12 @@ fn get_engines_version(context: &Context) -> Option<String> {
|
|||||||
Some(raw_version.to_string())
|
Some(raw_version.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn check_engines_version(nodejs_version: &str, engines_version: Option<String>) -> bool {
|
fn check_engines_version(nodejs_version: Option<&str>, engines_version: Option<String>) -> bool {
|
||||||
if engines_version.is_none() {
|
let (nodejs_version, engines_version) = match (nodejs_version, engines_version) {
|
||||||
return true;
|
(Some(nv), Some(ev)) => (nv, ev),
|
||||||
}
|
_ => return true,
|
||||||
let r = match VersionReq::parse(&engines_version.unwrap()) {
|
};
|
||||||
|
let r = match VersionReq::parse(&engines_version) {
|
||||||
Ok(r) => r,
|
Ok(r) => r,
|
||||||
Err(_e) => return true,
|
Err(_e) => return true,
|
||||||
};
|
};
|
||||||
@ -270,4 +271,16 @@ mod tests {
|
|||||||
assert_eq!(expected, actual);
|
assert_eq!(expected, actual);
|
||||||
dir.close()
|
dir.close()
|
||||||
}
|
}
|
||||||
|
#[test]
|
||||||
|
fn no_node_installed() -> io::Result<()> {
|
||||||
|
let dir = tempfile::tempdir()?;
|
||||||
|
File::create(dir.path().join("index.js"))?.sync_all()?;
|
||||||
|
let actual = ModuleRenderer::new("nodejs")
|
||||||
|
.path(dir.path())
|
||||||
|
.cmd("node --version", None)
|
||||||
|
.collect();
|
||||||
|
let expected = Some(format!("via {}", Color::Green.bold().paint(" ")));
|
||||||
|
assert_eq!(expected, actual);
|
||||||
|
dir.close()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user