From 60ec6da886e15bf1a6b9e8c4219e6f27ed19f191 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Fri, 15 Aug 2025 11:26:06 -0300 Subject: [PATCH] feat: add populated test database and directory helper functions Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) --- src/tests/common/test_helpers.rs | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/tests/common/test_helpers.rs b/src/tests/common/test_helpers.rs index 266de3d..dcd50cf 100644 --- a/src/tests/common/test_helpers.rs +++ b/src/tests/common/test_helpers.rs @@ -144,3 +144,42 @@ pub fn assert_file_exists(file_path: &PathBuf) { pub fn assert_file_not_exists(file_path: &PathBuf) { assert!(!file_path.exists(), "File {:?} should not exist but it does", file_path); } + +/// Create a temporary database and populate it with sample data for testing +pub fn create_populated_test_db() -> (TempDir, Connection, PathBuf) { + let (temp_dir, conn, db_path) = create_temp_db(); + + // Insert some sample items + for i in 1..=5 { + let item = crate::db::Item { + id: None, + ts: chrono::Utc::now(), + size: Some(i * 100), + compression: if i % 2 == 0 { + crate::compression_engine::CompressionType::LZ4.to_string() + } else { + crate::compression_engine::CompressionType::GZip.to_string() + }, + }; + db::insert_item(&conn, item).expect("Failed to insert item"); + } + + (temp_dir, conn, db_path) +} + +/// Assert that a directory exists and is actually a directory +pub fn assert_directory_exists(dir_path: &PathBuf) { + assert!(dir_path.exists(), "Directory {:?} does not exist", dir_path); + assert!(dir_path.is_dir(), "Path {:?} exists but is not a directory", dir_path); +} + +/// Create a nested directory structure for testing +pub fn create_nested_temp_dir_structure(dir: &TempDir) -> (PathBuf, PathBuf, PathBuf) { + let level1 = dir.path().join("level1"); + let level2 = level1.join("level2"); + let level3 = level2.join("level3"); + + std::fs::create_dir_all(&level3).expect("Failed to create nested directory structure"); + + (level1, level2, level3) +}