This commit is contained in:
2025-08-16 08:50:28 +02:00
parent bec9b20ec7
commit 0511dddd99
6 changed files with 103 additions and 36 deletions

View File

@@ -86,6 +86,9 @@ fn setup_server() -> (ServerProcessGuard, u16) {
process: child,
test_dir,
};
// Give the server a moment to start
std::thread::sleep(Duration::from_millis(100));
(guard, port)
}
@@ -96,20 +99,44 @@ async fn all_tests() {
let mut conn = get_redis_connection(port);
// Run all tests using the same connection
cleanup_keys(&mut conn).await;
test_basic_ping(&mut conn).await;
cleanup_keys(&mut conn).await;
test_string_operations(&mut conn).await;
cleanup_keys(&mut conn).await;
test_incr_operations(&mut conn).await;
test_hash_operations(&mut conn).await;
// cleanup_keys(&mut conn).await;
// test_hash_operations(&mut conn).await;
cleanup_keys(&mut conn).await;
test_expiration(&mut conn).await;
cleanup_keys(&mut conn).await;
test_scan_operations(&mut conn).await;
cleanup_keys(&mut conn).await;
test_scan_with_count(&mut conn).await;
cleanup_keys(&mut conn).await;
test_hscan_operations(&mut conn).await;
cleanup_keys(&mut conn).await;
test_transaction_operations(&mut conn).await;
cleanup_keys(&mut conn).await;
test_discard_transaction(&mut conn).await;
cleanup_keys(&mut conn).await;
test_type_command(&mut conn).await;
cleanup_keys(&mut conn).await;
test_config_commands(&mut conn).await;
cleanup_keys(&mut conn).await;
test_info_command(&mut conn).await;
cleanup_keys(&mut conn).await;
test_error_handling(&mut conn).await;
// Clean up keys after all tests
cleanup_keys(&mut conn).await;
}
async fn cleanup_keys(conn: &mut Connection) {
let keys: Vec<String> = redis::cmd("KEYS").arg("*").query(conn).unwrap();
if !keys.is_empty() {
let _: () = redis::cmd("DEL").arg(keys).query(conn).unwrap();
}
}
async fn test_basic_ping(conn: &mut Connection) {
@@ -141,16 +168,16 @@ async fn test_string_operations(conn: &mut Connection) {
async fn test_incr_operations(conn: &mut Connection) {
// Test INCR on non-existent key
let result: i32 = conn.incr("counter", 1).unwrap();
let result: i32 = redis::cmd("INCR").arg("counter").query(conn).unwrap();
assert_eq!(result, 1);
// Test INCR on existing key
let result: i32 = conn.incr("counter", 1).unwrap();
let result: i32 = redis::cmd("INCR").arg("counter").query(conn).unwrap();
assert_eq!(result, 2);
// Test INCR on string value (should fail)
let _: () = conn.set("string", "hello").unwrap();
let result: Result<i32, _> = conn.incr("string", 1);
let result: Result<i32, _> = redis::cmd("INCR").arg("string").query(conn);
assert!(result.is_err());
}