diff --git a/src/engine_eval/segment_evaluator.rs b/src/engine_eval/segment_evaluator.rs index 5e4d982..46c4449 100644 --- a/src/engine_eval/segment_evaluator.rs +++ b/src/engine_eval/segment_evaluator.rs @@ -182,7 +182,6 @@ fn get_value_from_jsonpath(ec: &EngineEvaluationContext, path: &str) -> Option return false, }; - // Build object IDs based on context - let context_str = context_value.map(|v| v.value.clone()); - let object_ids: Vec<&str> = if let Some(ref ctx_str) = context_str { - vec![segment_key, ctx_str.as_str()] - } else if let Some(ref identity) = ec.identity { - vec![segment_key, &identity.key] + let split_key: Option = if condition.property.is_empty() { + ec.identity.as_ref().map(|id| id.key.clone()) } else { - return false; + context_value.map(|v| v.value.clone()) + }; + + let split_key = match split_key { + Some(key) => key, + None => return false, }; + let object_ids: Vec<&str> = vec![segment_key, &split_key]; let hash_percentage = hashing::get_hashed_percentage_for_object_ids(object_ids, 1); (hash_percentage as f64) <= float_value } diff --git a/tests/engine_tests/engine-test-data b/tests/engine_tests/engine-test-data index 0d9040a..7840a13 160000 --- a/tests/engine_tests/engine-test-data +++ b/tests/engine_tests/engine-test-data @@ -1 +1 @@ -Subproject commit 0d9040a76ec3d11f5524ca98b19ec66f8ba7daac +Subproject commit 7840a1349b601df3b6b4a089f40864f659801afb