- Add a new Redis client module to the SAL library. - Implement Rhai wrappers for Redis connection and operations. - Add comprehensive test suite for the Redis client module. - Update documentation to include Redis client module details. - Add .gitignore entries to exclude test logs and files.
69 lines
2.1 KiB
Plaintext
69 lines
2.1 KiB
Plaintext
// 01_redis_connection.rhai
|
|
// Tests for Redis client connection and basic operations
|
|
|
|
// Custom assert function
|
|
fn assert_true(condition, message) {
|
|
if !condition {
|
|
print(`ASSERTION FAILED: ${message}`);
|
|
throw message;
|
|
}
|
|
}
|
|
|
|
// Helper function to check if Redis is available
|
|
fn is_redis_available() {
|
|
try {
|
|
// Try to execute a simple PING command
|
|
let ping_result = redis_ping();
|
|
return ping_result == "PONG";
|
|
} catch(err) {
|
|
print(`Redis connection error: ${err}`);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
print("=== Testing Redis Client Connection ===");
|
|
|
|
// Check if Redis is available
|
|
let redis_available = is_redis_available();
|
|
if !redis_available {
|
|
print("Redis server is not available. Skipping Redis tests.");
|
|
// Exit gracefully without error
|
|
return;
|
|
}
|
|
|
|
print("✓ Redis server is available");
|
|
|
|
// Test redis_ping function
|
|
print("Testing redis_ping()...");
|
|
let ping_result = redis_ping();
|
|
assert_true(ping_result == "PONG", "PING should return PONG");
|
|
print(`✓ redis_ping(): Returned ${ping_result}`);
|
|
|
|
// Test redis_set and redis_get functions
|
|
print("Testing redis_set() and redis_get()...");
|
|
let test_key = "rhai_test_key";
|
|
let test_value = "Hello from Rhai test";
|
|
|
|
// Set a value
|
|
let set_result = redis_set(test_key, test_value);
|
|
assert_true(set_result, "SET operation should succeed");
|
|
print(`✓ redis_set(): Successfully set key ${test_key}`);
|
|
|
|
// Get the value back
|
|
let get_result = redis_get(test_key);
|
|
assert_true(get_result == test_value, "GET should return the value we set");
|
|
print(`✓ redis_get(): Successfully retrieved value for key ${test_key}`);
|
|
|
|
// Test redis_del function
|
|
print("Testing redis_del()...");
|
|
let del_result = redis_del(test_key);
|
|
assert_true(del_result, "DEL operation should succeed");
|
|
print(`✓ redis_del(): Successfully deleted key ${test_key}`);
|
|
|
|
// Verify the key was deleted
|
|
let get_after_del = redis_get(test_key);
|
|
assert_true(get_after_del == "", "Key should not exist after deletion");
|
|
print("✓ Key was successfully deleted");
|
|
|
|
print("All Redis connection tests completed successfully!");
|