#[test]
fn excel_rejects_text_input() {
let rule = load_rule(&fixtures_dir().join("t34_excel_input").join("rules.yaml"));
let err = normalize_records_with_options(
&rule,
InputData::Text("not xlsx"),
&NormalizationOptions::default(),
)
.expect_err("excel text input should fail");
assert_eq!(err.kind, TransformErrorKind::InvalidInput);
}
#[test]
fn excel_rejects_input_over_byte_limit() {
let rule = load_rule(&fixtures_dir().join("t34_excel_input").join("rules.yaml"));
let input =
fs::read(fixtures_dir().join("t34_excel_input").join("input.xlsx")).expect("read xlsx");
let options = NormalizationOptions {
max_input_bytes: 1,
..NormalizationOptions::default()
};
let err = normalize_records_with_options(&rule, InputData::Bytes(&input), &options)
.expect_err("input byte limit should fail");
assert_eq!(err.kind, TransformErrorKind::InvalidInput);
}
#[test]
fn excel_preflight_accepts_byte_input() {
let rule = load_rule(&fixtures_dir().join("t34_excel_input").join("rules.yaml"));
let input =
fs::read(fixtures_dir().join("t34_excel_input").join("input.xlsx")).expect("read xlsx");
preflight_validate_input(&rule, InputData::Bytes(&input), None)
.expect("excel preflight should accept byte input");
}