From 2c816981b07d0a8ae995dde2ca64114dab56fead Mon Sep 17 00:00:00 2001 From: Tsiry Sandratraina Date: Tue, 23 May 2023 19:17:48 +0300 Subject: [PATCH] chore: add more tests chore: add more tests --- Cargo.lock | 1 + crates/cli/.gitignore | 1 + crates/cli/src/config.rs | 32 ++++++++++++++++++++++++++++++++ crates/core/src/core.rs | 1 - crates/log/Cargo.toml | 3 +++ crates/log/src/log.rs | 30 ++++++++++++++++++++++++++++++ crates/util/src/lib.rs | 18 ++++++++++++++++++ 7 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 crates/cli/.gitignore diff --git a/Cargo.lock b/Cargo.lock index 21d28dd..bb2dd76 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3139,6 +3139,7 @@ dependencies = [ name = "superviseur-log" version = "0.1.0" dependencies = [ + "chrono", "superviseur-types", "tantivy", ] diff --git a/crates/cli/.gitignore b/crates/cli/.gitignore new file mode 100644 index 0000000..301bfb4 --- /dev/null +++ b/crates/cli/.gitignore @@ -0,0 +1 @@ +Superfile.hcl \ No newline at end of file diff --git a/crates/cli/src/config.rs b/crates/cli/src/config.rs index 991ab1e..aafa5ae 100644 --- a/crates/cli/src/config.rs +++ b/crates/cli/src/config.rs @@ -24,3 +24,35 @@ pub fn verify_if_config_file_is_present() -> Result<(String, String), Error> { let config = std::fs::read_to_string(current_dir.join(SUPERFILE_TOML))?; return Ok((config, String::from("toml"))); } + +#[cfg(test)] +pub mod tests { + use super::*; + + pub const CONFIG_EXAMPLE: &str = r#" + project = "demo" + + service "demo" { + type = "exec" + command = "ping $GITHUB_DOMAIN" + working_dir = "/tmp" + description = "Ping Service Example" + depends_on = [] + env = { + "GITHUB_DOMAIN" = "github.com" + } + stdout = "/tmp/demo-stdout.log" + stderr = "/tmp/demo-stderr.log" + } + "#; + + #[test] + fn test_verify_if_config_file_is_present() { + // create a default config file + let current_dir = std::env::current_dir().unwrap(); + let config_file = current_dir.join(SUPERFILE); + std::fs::write(config_file, CONFIG_EXAMPLE).unwrap(); + let result = verify_if_config_file_is_present(); + assert!(result.is_ok()); + } +} diff --git a/crates/core/src/core.rs b/crates/core/src/core.rs index e5855ee..05b9f87 100644 --- a/crates/core/src/core.rs +++ b/crates/core/src/core.rs @@ -35,7 +35,6 @@ use superviseur_types::{ command::SuperviseurCommand, configuration::{ConfigurationData, Service}, events::{ProcessEvent, SuperviseurEvent}, - log::Log, process::{Process, State}, }; diff --git a/crates/log/Cargo.toml b/crates/log/Cargo.toml index 342cfbc..09cfc2e 100644 --- a/crates/log/Cargo.toml +++ b/crates/log/Cargo.toml @@ -14,3 +14,6 @@ version = "0.1.0" [dependencies] superviseur-types = {path = "../types", version = "0.1.0"} tantivy = "0.19.2" + +[dev-dependencies] +chrono = "0.4.23" diff --git a/crates/log/src/log.rs b/crates/log/src/log.rs index dd41f0d..4fc40bf 100644 --- a/crates/log/src/log.rs +++ b/crates/log/src/log.rs @@ -136,3 +136,33 @@ impl LogEngine { .collect()) } } + +#[cfg(test)] +pub mod tests { + use std::time::Duration; + + #[test] + fn test_log_engine() { + use crate::log::LogEngine; + use superviseur_types::log::Log; + + let log_engine = LogEngine::new(); + let log = Log { + project: "demo_project".to_string(), + service: "demo_service".to_string(), + line: "demo_line".to_string(), + date: tantivy::DateTime::from_timestamp_secs( + chrono::DateTime::parse_from_rfc3339("2021-01-01T00:00:00Z") + .unwrap() + .timestamp(), + ), + output: "demo_output".to_string(), + }; + log_engine.insert(&log).unwrap(); + std::thread::sleep(Duration::from_secs(1)); + let logs = log_engine.search("demo_line").unwrap(); + assert_eq!(logs.len(), 1); + let logs = log_engine.search_in_service("demo_line").unwrap(); + assert_eq!(logs.len(), 1); + } +} diff --git a/crates/util/src/lib.rs b/crates/util/src/lib.rs index bd79219..663988d 100644 --- a/crates/util/src/lib.rs +++ b/crates/util/src/lib.rs @@ -31,3 +31,21 @@ pub fn read_lines(path: &str) -> Result, Error> { } Ok(lines) } + +#[cfg(test)] +pub mod tests { + #[test] + fn convert_dir_path_to_absolute_path() { + let current_dir = std::env::current_dir().unwrap(); + let current_dir = current_dir.to_str().unwrap(); + let dir = "./test"; + let dir = super::convert_dir_path_to_absolute_path(dir, current_dir).unwrap(); + assert_eq!(dir, format!("{}/test", current_dir)); + } + + #[test] + fn read_lines() { + let lines = super::read_lines("Cargo.toml").unwrap(); + assert_eq!(lines[0], "[package]"); + } +}