From 3a7df31b0873c3c9553e835837ef38386409f9a5 Mon Sep 17 00:00:00 2001 From: Mohammad Kanaan Date: Mon, 27 Jul 2026 13:20:13 +0300 Subject: [PATCH] parser: test: add some tests --- src/parser.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index d0bbf77..a795e39 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -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> = + 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); + } +}