#[cfg(test)]
mod tests {
use crate::filter::dsl::error::DslError;
#[test]
fn syntax_error_carries_column() {
let err = DslError::Syntax {
column: 12,
message: "expected `)`".into(),
};
assert_eq!(err.column(), Some(12));
assert_eq!(err.kind(), "syntax");
}
#[test]
fn unknown_field_has_no_column() {
let err = DslError::UnknownField {
field: "foo".into(),
};
assert_eq!(err.column(), None);
assert_eq!(err.kind(), "unknown_field");
}
#[test]
fn display_formats_syntax_error() {
let err = DslError::Syntax {
column: 4,
message: "unterminated regex".into(),
};
let rendered = err.to_string();
assert!(rendered.contains("column 4"));
assert!(rendered.contains("unterminated regex"));
}
#[test]
fn display_formats_invalid_regex() {
let err = DslError::InvalidRegex {
pattern: "(".into(),
reason: "unclosed group".into(),
};
assert!(err.to_string().contains("/(/"));
}
}