summaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorDavid Knaack <davidkna@users.noreply.github.com>2021-02-13 19:32:35 +0100
committerGitHub <noreply@github.com>2021-02-13 19:32:35 +0100
commitcdb999447a80788a7e24f58958055e8471f39421 (patch)
tree93a3d13b79530bdec5281a2b90e6614839c7473f /src/modules
parent5ee09aa4dd41fecccb4205f1faf8c00e2231dd78 (diff)
feat(test): allow dynamic mocking of commands (#2307)
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/java.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/modules/java.rs b/src/modules/java.rs
index 9fa1789b2..26745d7d5 100644
--- a/src/modules/java.rs
+++ b/src/modules/java.rs
@@ -91,7 +91,7 @@ fn parse_java_version(java_version: &str) -> Option<String> {
#[cfg(test)]
mod tests {
use super::*;
- use crate::test::ModuleRenderer;
+ use crate::{test::ModuleRenderer, utils::CommandOutput};
use ansi_term::Color;
use std::fs::File;
use std::io;
@@ -180,6 +180,32 @@ mod tests {
}
#[test]
+ fn folder_with_java_file_preview() -> io::Result<()> {
+ let dir = tempfile::tempdir()?;
+ File::create(dir.path().join("Main.java"))?.sync_all()?;
+ let actual = ModuleRenderer::new("java").cmd("java -Xinternalversion", Some(CommandOutput {
+ stdout: "OpenJDK 64-Bit Server VM (16+14) for bsd-aarch64 JRE (16+14), built on Jan 17 2021 07:19:47 by \"brew\" with clang Apple LLVM 12.0.0 (clang-1200.0.32.28)\n".to_owned(),
+ stderr: "".to_owned()
+ })).path(dir.path()).collect();
+ let expected = Some(format!("via {}", Color::Red.dimmed().paint("☕ v16 ")));
+ assert_eq!(expected, actual);
+ dir.close()
+ }
+
+ #[test]
+ fn folder_with_java_file_no_java_installed() -> io::Result<()> {
+ let dir = tempfile::tempdir()?;
+ File::create(dir.path().join("Main.java"))?.sync_all()?;
+ let actual = ModuleRenderer::new("java")
+ .cmd("java -Xinternalversion", None)
+ .path(dir.path())
+ .collect();
+ let expected = Some(format!("via {}", Color::Red.dimmed().paint("☕ ")));
+ assert_eq!(expected, actual);
+ dir.close()
+ }
+
+ #[test]
fn folder_with_class_file() -> io::Result<()> {
let dir = tempfile::tempdir()?;
File::create(dir.path().join("Main.class"))?.sync_all()?;