#[test]
fn csv_trailing_missing_field_is_invalid_input() {
let yaml = r#"
version: 2
input:
format: csv
csv:
has_header: true
mappings:
- target: "id"
source: "id"
- target: "name"
source: "name"
default: "missing-name"
"#;
let rule = parse_rule_file(yaml).expect("parse rule");
let err = transform(&rule, "id,name\n1\n", None).expect_err("short csv row should fail");
assert_eq!(err.kind, TransformErrorKind::InvalidInput);
assert!(err.message.contains("CSV error"), "{}", err.message);
}
#[test]
fn csv_extra_field_is_invalid_input() {
let yaml = r#"
version: 2
input:
format: csv
csv:
has_header: true
mappings:
- target: "id"
source: "id"
"#;
let rule = parse_rule_file(yaml).expect("parse rule");
let err = transform(&rule, "id\n1,extra\n", None).expect_err("wide csv row should fail");
assert_eq!(err.kind, TransformErrorKind::InvalidInput);
assert!(err.message.contains("CSV error"), "{}", err.message);
}