feat: implement comprehensive tests for all modules including database, meta plugins, compression engines, modes, server auth, and utilities to complete Phase 2

Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-14 12:18:36 -03:00
parent 4e23dd36e1
commit 0abb76e785
19 changed files with 645 additions and 19 deletions

View File

@@ -1 +1,47 @@
// Meta plugin digest tests
#[cfg(test)]
mod tests {
use keep::meta_plugin::digest::*;
use keep::meta_plugin::MetaPlugin;
use std::io::Write;
#[test]
fn test_digest_sha256_meta_plugin() {
let mut plugin = DigestSha256MetaPlugin::new("test_digest".to_string());
assert_eq!(plugin.meta_name(), "test_digest");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
// Writing some data
let mut writer = writer_result.unwrap();
let write_result = writer.write(b"test data");
assert!(write_result.is_ok());
}
#[test]
fn test_read_time_meta_plugin() {
let mut plugin = ReadTimeMetaPlugin::new("read_time_test".to_string());
assert_eq!(plugin.meta_name(), "read_time_test");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
}
#[test]
fn test_read_rate_meta_plugin() {
let mut plugin = ReadRateMetaPlugin::new("read_rate_test".to_string());
assert_eq!(plugin.meta_name(), "read_rate_test");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
}
}

View File

@@ -1 +1,50 @@
// Meta plugin program tests
#[cfg(test)]
mod tests {
use keep::meta_plugin::program::MetaPluginProgram;
use keep::meta_plugin::MetaPlugin;
use std::io::Write;
#[test]
fn test_meta_plugin_program_creation() {
let plugin = MetaPluginProgram::new(
"echo".to_string(),
vec!["test".to_string()],
"test_plugin".to_string(),
false,
);
assert_eq!(plugin.meta_name(), "test_plugin");
// If echo is available, it should be supported
// We don't assert on is_supported() as it depends on system availability
}
#[test]
fn test_meta_plugin_program_create_writer() {
let plugin = MetaPluginProgram::new(
"cat".to_string(),
vec![].to_vec(),
"cat_plugin".to_string(),
false,
);
// Creating a writer should work for valid programs
let result = plugin.create();
// We don't assert success as it depends on system availability
// but we ensure it doesn't panic
let _ = result;
}
#[test]
fn test_meta_plugin_program_unsupported() {
let plugin = MetaPluginProgram::new(
"nonexistent_program_xyz".to_string(),
vec![].to_vec(),
"bad_plugin".to_string(),
false,
);
// An unsupported plugin should report as such
// Note: This might still be supported if the program exists
let _ = plugin.is_supported();
}
}

View File

@@ -1 +1,57 @@
// Meta plugin system tests
#[cfg(test)]
mod tests {
use keep::meta_plugin::system::*;
use keep::meta_plugin::MetaPlugin;
#[test]
fn test_cwd_meta_plugin() {
let mut plugin = CwdMetaPlugin::new();
assert_eq!(plugin.meta_name(), "cwd");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
// Finalize should return current working directory
let result = plugin.finalize();
assert!(result.is_ok());
}
#[test]
fn test_binary_meta_plugin() {
let mut plugin = BinaryMetaPlugin::new();
assert_eq!(plugin.meta_name(), "binary");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
}
#[test]
fn test_uid_meta_plugin() {
let mut plugin = UidMetaPlugin::new();
assert_eq!(plugin.meta_name(), "uid");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
}
#[test]
fn test_user_meta_plugin() {
let mut plugin = UserMetaPlugin::new();
assert_eq!(plugin.meta_name(), "user");
assert!(plugin.is_internal());
// Creating a writer should work
let writer_result = plugin.create();
assert!(writer_result.is_ok());
}
}