#[test]
fn yaml_rejects_text_limit_during_parse() {
let rule = parse_rule_file(
r#"
version: 2
input:
format: yaml
yaml: {}
mappings:
- target: "name"
source: "name"
"#,
)
.expect("parse rule");
let options = NormalizationOptions {
max_text_bytes: 3,
..NormalizationOptions::default()
};
let err = normalize_records_with_options(&rule, InputData::Text("name: Alice\n"), &options)
.expect_err("text limit should fail");
assert_eq!(err.kind, TransformErrorKind::InvalidInput);
}
#[test]
fn yaml_allows_array_at_limit() {
let rule = parse_rule_file(
r#"
version: 2
input:
format: yaml
yaml: {}
mappings:
- target: "values"
source: "values"
"#,
)
.expect("parse rule");
let options = NormalizationOptions {
max_array_len: 1,
..NormalizationOptions::default()
};
let mut records =
normalize_records_with_options(&rule, InputData::Text("values: [1]\n"), &options)
.expect("array at limit should pass");
let record = records.next().expect("record").expect("record ok");
assert_eq!(record, serde_json::json!({ "values": [1] }));
}