diff --git a/milli/src/update/index_documents/transform.rs b/milli/src/update/index_documents/transform.rs index 8d656e50c..f4cbc8e22 100644 --- a/milli/src/update/index_documents/transform.rs +++ b/milli/src/update/index_documents/transform.rs @@ -497,6 +497,7 @@ mod test { use super::*; mod compute_primary_key { + use super::{compute_primary_key_pair, FieldsIdsMap}; #[test] @@ -537,5 +538,27 @@ mod test { assert!(result.is_err()); assert_eq!(fields_map.len(), 0); } + + } + + mod primary_key_inference { + use bimap::BiHashMap; + + use crate::update::index_documents::transform::find_primary_key; + + #[test] + fn primary_key_infered_on_first_field() { + // We run the test multiple times to change the order in which the fields are iterated upon. + for _ in 1..50 { + let mut map = BiHashMap::new(); + map.insert(1, "fakeId".to_string()); + map.insert(2, "fakeId".to_string()); + map.insert(3, "fakeId".to_string()); + map.insert(4, "fakeId".to_string()); + map.insert(0, "realId".to_string()); + + assert_eq!(find_primary_key(&map), Some("realId")); + } + } } }