diff options
author | David Knaack <davidkna@users.noreply.github.com> | 2021-02-13 19:32:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-13 19:32:35 +0100 |
commit | cdb999447a80788a7e24f58958055e8471f39421 (patch) | |
tree | 93a3d13b79530bdec5281a2b90e6614839c7473f /src/modules | |
parent | 5ee09aa4dd41fecccb4205f1faf8c00e2231dd78 (diff) |
feat(test): allow dynamic mocking of commands (#2307)
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/java.rs | 28 |
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()?; |