summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Ribeiro <33375224+Andree37@users.noreply.github.com>2023-01-10 22:00:09 +0000
committerGitHub <noreply@github.com>2023-01-10 23:00:09 +0100
commite88484d5674b7c038346ff1c89089e535d2e2d6d (patch)
tree51af0a32bb0c946576673957b01044361f764c7f
parentaf5e50619272a716bcb692a264e84f1db407db27 (diff)
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>
-rw-r--r--src/modules/nodejs.rs25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/modules/nodejs.rs b/src/modules/nodejs.rs
index 635cfb3f2..0a4e3c5be 100644
--- a/src/modules/nodejs.rs
+++ b/src/modules/nodejs.rs
@@ -45,7 +45,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
"style" => {
let engines_version = get_engines_version(context);
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 {
Some(Ok(config.style))
} else {
@@ -92,11 +92,12 @@ fn get_engines_version(context: &Context) -> Option<String> {
Some(raw_version.to_string())
}
-fn check_engines_version(nodejs_version: &str, engines_version: Option<String>) -> bool {
- if engines_version.is_none() {
- return true;
- }
- let r = match VersionReq::parse(&engines_version.unwrap()) {
+fn check_engines_version(nodejs_version: Option<&str>, engines_version: Option<String>) -> bool {
+ let (nodejs_version, engines_version) = match (nodejs_version, engines_version) {
+ (Some(nv), Some(ev)) => (nv, ev),
+ _ => return true,
+ };
+ let r = match VersionReq::parse(&engines_version) {
Ok(r) => r,
Err(_e) => return true,
};
@@ -270,4 +271,16 @@ mod tests {
assert_eq!(expected, actual);
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()
+ }
}