...
This commit is contained in:
127
packages/clients/zinitclient/tests/rhai/01_basic_operations.rhai
Normal file
127
packages/clients/zinitclient/tests/rhai/01_basic_operations.rhai
Normal file
@@ -0,0 +1,127 @@
|
||||
// Basic Zinit operations test script
|
||||
// This script tests fundamental zinit client operations
|
||||
|
||||
// Configuration
|
||||
let socket_paths = [
|
||||
"/var/run/zinit.sock",
|
||||
"/tmp/zinit.sock",
|
||||
"/run/zinit.sock",
|
||||
"./zinit.sock"
|
||||
];
|
||||
|
||||
// Find available socket
|
||||
let socket_path = "";
|
||||
for path in socket_paths {
|
||||
try {
|
||||
let test_services = zinit_list(path);
|
||||
socket_path = path;
|
||||
print(`✓ Found working Zinit socket at: ${path}`);
|
||||
break;
|
||||
} catch(e) {
|
||||
// Continue to next path
|
||||
}
|
||||
}
|
||||
|
||||
if socket_path == "" {
|
||||
print("⚠ No working Zinit socket found. Skipping tests.");
|
||||
return;
|
||||
}
|
||||
|
||||
print("=== Basic Zinit Operations Test ===");
|
||||
|
||||
// Test 1: List services
|
||||
print("\n1. Testing service listing...");
|
||||
try {
|
||||
let services = zinit_list(socket_path);
|
||||
print(`✓ Successfully listed ${services.len()} services`);
|
||||
|
||||
if services.len() > 0 {
|
||||
print(" Sample services:");
|
||||
let count = 0;
|
||||
for name in services.keys() {
|
||||
if count >= 3 { break; }
|
||||
let state = services[name];
|
||||
print(` ${name}: ${state}`);
|
||||
count += 1;
|
||||
}
|
||||
} else {
|
||||
print(" No services currently managed by Zinit");
|
||||
}
|
||||
} catch(e) {
|
||||
print(`✗ Service listing failed: ${e}`);
|
||||
}
|
||||
|
||||
// Test 2: Service status (if services exist)
|
||||
print("\n2. Testing service status...");
|
||||
try {
|
||||
let services = zinit_list(socket_path);
|
||||
if services.len() > 0 {
|
||||
let service_names = services.keys();
|
||||
let first_service = service_names[0];
|
||||
|
||||
try {
|
||||
let status = zinit_status(socket_path, first_service);
|
||||
print(`✓ Status for '${first_service}':`);
|
||||
print(` Name: ${status.name}`);
|
||||
print(` PID: ${status.pid}`);
|
||||
print(` State: ${status.state}`);
|
||||
print(` Target: ${status.target}`);
|
||||
|
||||
if status.after.len() > 0 {
|
||||
print(" Dependencies:");
|
||||
for dep in status.after.keys() {
|
||||
let dep_state = status.after[dep];
|
||||
print(` ${dep}: ${dep_state}`);
|
||||
}
|
||||
}
|
||||
} catch(e) {
|
||||
print(`⚠ Status check failed for '${first_service}': ${e}`);
|
||||
}
|
||||
} else {
|
||||
print(" No services available for status testing");
|
||||
}
|
||||
} catch(e) {
|
||||
print(`✗ Service status test failed: ${e}`);
|
||||
}
|
||||
|
||||
// Test 3: Logs functionality
|
||||
print("\n3. Testing logs functionality...");
|
||||
try {
|
||||
let all_logs = zinit_logs_all(socket_path);
|
||||
print(`✓ Retrieved ${all_logs.len()} log entries`);
|
||||
|
||||
if all_logs.len() > 0 {
|
||||
print(" Recent log entries:");
|
||||
let count = 0;
|
||||
for log_entry in all_logs {
|
||||
if count >= 3 { break; }
|
||||
print(` ${log_entry}`);
|
||||
count += 1;
|
||||
}
|
||||
} else {
|
||||
print(" No log entries available");
|
||||
}
|
||||
} catch(e) {
|
||||
print(`⚠ Logs retrieval failed: ${e}`);
|
||||
}
|
||||
|
||||
// Test 4: Filtered logs
|
||||
print("\n4. Testing filtered logs...");
|
||||
try {
|
||||
let filtered_logs = zinit_logs(socket_path, "zinit");
|
||||
print(`✓ Retrieved ${filtered_logs.len()} filtered log entries`);
|
||||
} catch(e) {
|
||||
print(`⚠ Filtered logs retrieval failed: ${e}`);
|
||||
}
|
||||
|
||||
// Test 5: Error handling with invalid service
|
||||
print("\n5. Testing error handling...");
|
||||
let invalid_service = "non-existent-service-12345";
|
||||
try {
|
||||
let status = zinit_status(socket_path, invalid_service);
|
||||
print(`⚠ Unexpected success for non-existent service: ${status}`);
|
||||
} catch(e) {
|
||||
print(`✓ Correctly failed for non-existent service: ${e}`);
|
||||
}
|
||||
|
||||
print("\n=== Basic Operations Test Complete ===");
|
Reference in New Issue
Block a user