parser: test: add some tests

This commit is contained in:
Mohammad Kanaan 2026-07-27 13:20:13 +03:00
parent c7002aef34
commit 3a7df31b08

View file

@ -54,3 +54,36 @@ pub fn match_pattern(
Ok(Matches { items: matches, pattern: String::from(pattern) })
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_get_file_name_from_path() {
let path = "/path/to/file.txt";
let file_name = get_file_name_from_path(path);
assert_eq!(file_name, "file.txt");
let path = "file.txt";
let file_name = get_file_name_from_path(path);
assert_eq!(file_name, "file.txt");
}
#[test]
fn matches_lines_and_tracks_line_numbers() {
let input: Vec<std::io::Result<String>> =
vec![Ok("hola".into()), Ok("no".into()), Ok("hola again".into())];
let result = match_pattern(input.into_iter(), r"^hola", "/tmp/test.txt").unwrap();
assert_eq!(result.items.len(), 2);
assert_eq!(result.items[0].text, "hola");
assert_eq!(result.items[0].line_number, 1);
assert_eq!(result.items[0].file_name, "test.txt");
assert_eq!(result.items[1].text, "hola again");
assert_eq!(result.items[1].line_number, 3);
}
}