Skip to content

Commit cf6c959

Browse files
committed
fix: condition subject set default value
1 parent d1cb532 commit cf6c959

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/evalutate.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ enum ConditionType {
292292
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
293293
struct Condition {
294294
r#type: ConditionType,
295+
#[serde(default)]
295296
subject: String,
296297
predicate: String,
297298
objects: Vec<String>,
@@ -995,4 +996,19 @@ mod string_condition_tests {
995996
let r = r.as_object().unwrap();
996997
assert!(r.get("variation_0").is_some());
997998
}
999+
1000+
#[test]
1001+
fn test_segment_condition() {
1002+
let json_str = r#"
1003+
{
1004+
"type":"segment",
1005+
"predicate":"is in",
1006+
"objects":[ "segment1","segment2"]
1007+
}
1008+
"#;
1009+
1010+
let segment = serde_json::from_str::<Condition>(json_str)
1011+
.map_err(|e| FPError::JsonError(e.to_string()));
1012+
assert!(segment.is_ok())
1013+
}
9981014
}

0 commit comments

Comments
 (0)