This commit is contained in:
2025-04-05 05:46:30 +02:00
parent e48063a79c
commit 7cdd9f5559
52 changed files with 2062 additions and 1256 deletions

View File

@@ -1,170 +0,0 @@
// Test script for Git module functions
// Import required modules
import "os" as os;
import "process" as process;
// Test GitTree creation
fn test_git_tree_creation() {
// Get home directory
let home_dir = env("HOME");
let code_dir = `${home_dir}/code`;
print("Testing GitTree creation...");
let git_tree = gittree_new(code_dir);
print(`Created GitTree with base path: ${code_dir}`);
return true;
}
// Test GitTree list method
fn test_git_tree_list() {
// Get home directory
let home_dir = env("HOME");
let code_dir = `${home_dir}/code`;
print("Testing GitTree list method...");
let git_tree = gittree_new(code_dir);
let repos = git_tree.list();
print(`Found ${repos.len()} repositories`);
// Print the first few repositories
let count = if repos.len() > 3 { 3 } else { repos.len() };
for i in range(0, count) {
print(` - ${repos[i]}`);
}
return repos.len() >= 0; // Success even if no repos found
}
// Test GitTree find method
fn test_git_tree_find() {
// Get home directory
let home_dir = env("HOME");
let code_dir = `${home_dir}/code`;
print("Testing GitTree find method...");
let git_tree = gittree_new(code_dir);
let repos = git_tree.list();
if repos.len() == 0 {
print("No repositories found, skipping test");
return true;
}
// Extract a part of the first repo name to search for
let repo_path = repos[0];
let parts = repo_path.split("/");
let repo_name = parts[parts.len() - 1];
let search_pattern = repo_name + "*";
print(`Searching for repositories matching pattern: ${search_pattern}`);
let matching = git_tree.find(search_pattern);
print(`Found ${matching.len()} matching repositories`);
for repo in matching {
print(` - ${repo}`);
}
return matching.len() > 0;
}
// Test GitTree get method
fn test_git_tree_get() {
// Get home directory
let home_dir = env("HOME");
let code_dir = `${home_dir}/code`;
print("Testing GitTree get method...");
let git_tree = gittree_new(code_dir);
let repos = git_tree.list();
if repos.len() == 0 {
print("No repositories found, skipping test");
return true;
}
// Extract a part of the first repo name to search for
let repo_path = repos[0];
let parts = repo_path.split("/");
let repo_name = parts[parts.len() - 1];
print(`Getting GitRepo objects for: ${repo_name}`);
let git_repos = git_tree.get(repo_name);
print(`Found ${git_repos.len()} GitRepo objects`);
for repo in git_repos {
print(` - ${repo.path()}`);
}
return git_repos.len() > 0;
}
// Test GitRepo has_changes method
fn test_git_repo_has_changes() {
// Get home directory
let home_dir = env("HOME");
let code_dir = `${home_dir}/code`;
print("Testing GitRepo has_changes method...");
let git_tree = gittree_new(code_dir);
let repos = git_tree.list();
if repos.len() == 0 {
print("No repositories found, skipping test");
return true;
}
// Get the first repo
let git_repos = git_tree.get(repos[0]);
if git_repos.len() == 0 {
print("Failed to get GitRepo object, skipping test");
return true;
}
let git_repo = git_repos[0];
let has_changes = git_repo.has_changes();
print(`Repository ${git_repo.path()} has changes: ${has_changes}`);
return true;
}
// Run the tests
fn run_tests() {
let tests = [
#{ name: "git_tree_creation", fn: test_git_tree_creation },
#{ name: "git_tree_list", fn: test_git_tree_list },
#{ name: "git_tree_find", fn: test_git_tree_find },
#{ name: "git_tree_get", fn: test_git_tree_get },
#{ name: "git_repo_has_changes", fn: test_git_repo_has_changes }
];
let passed = 0;
let failed = 0;
for test in tests {
print(`\nRunning test: ${test.name}`);
let result = false;
try {
result = test.fn();
} catch(err) {
print(`Test ${test.name} threw an error: ${err}`);
result = false;
}
if result {
print(`Test ${test.name} PASSED`);
passed += 1;
} else {
print(`Test ${test.name} FAILED`);
failed += 1;
}
}
print(`\nTest summary: ${passed} passed, ${failed} failed`);
}
// Run all tests
run_tests();