From 900e1c3a680718fe502380d349d03846ecd59722 Mon Sep 17 00:00:00 2001 From: Tanmay Patil Date: Sun, 14 Apr 2024 13:43:30 +0530 Subject: [PATCH] Tests: Replace modification time in diff with "TIMESTAMP" placeholder --- src/context_diff.rs | 8 ++++---- src/macros.rs | 14 +++++++++++++- src/unified_diff.rs | 8 ++++---- tests/integration.rs | 6 +++--- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/context_diff.rs b/src/context_diff.rs index 93c38a5..8a1b831 100644 --- a/src/context_diff.rs +++ b/src/context_diff.rs @@ -749,8 +749,8 @@ mod tests { ); let expected_full = [ - "*** target/context-diff/foo\t", - "--- target/context-diff/bar\t", + "*** target/context-diff/foo\tTIMESTAMP", + "--- target/context-diff/bar\tTIMESTAMP", "***************", "*** 1,3 ****", " a", @@ -777,8 +777,8 @@ mod tests { ); let expected_brief = [ - "*** target/context-diff/foo\t", - "--- target/context-diff/bar\t", + "*** target/context-diff/foo\tTIMESTAMP", + "--- target/context-diff/bar\tTIMESTAMP", "", ] .join("\n"); diff --git a/src/macros.rs b/src/macros.rs index 401bff4..7a3c693 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,3 +1,15 @@ +// asserts equality of the actual diff and expected diff +// considering datetime varitations +// +// It replaces the modification time in the actual diff +// with placeholer "TIMESTAMP" and then asserts the equality +// +// For eg. +// let brief = "*** fruits_old.txt\t2024-03-24 23:43:05.189597645 +0530\n +// --- fruits_new.txt\t2024-03-24 23:35:08.922581904 +0530\n"; +// +// replaced = "*** fruits_old.txt\tTIMESTAMP\n +// --- fruits_new.txt\tTIMESTAMP\n"; #[macro_export] macro_rules! assert_diff_eq { ($actual:expr, $expected:expr) => {{ @@ -6,7 +18,7 @@ macro_rules! assert_diff_eq { let diff = str::from_utf8(&$actual).unwrap(); let re = Regex::new(r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ [+-]\d{4}").unwrap(); - let actual = re.replace_all(diff, ""); + let actual = re.replace_all(diff, "TIMESTAMP"); assert_eq!(actual, $expected); }}; diff --git a/src/unified_diff.rs b/src/unified_diff.rs index 57925e1..ed1226f 100644 --- a/src/unified_diff.rs +++ b/src/unified_diff.rs @@ -903,8 +903,8 @@ mod tests { ); let expected_full = [ - "--- target/context-diff/foo\t", - "+++ target/context-diff/bar\t", + "--- target/context-diff/foo\tTIMESTAMP", + "+++ target/context-diff/bar\tTIMESTAMP", "@@ -1,3 +1,3 @@", " a", "-b", @@ -927,8 +927,8 @@ mod tests { ); let expected_brief = [ - "--- target/context-diff/foo\t", - "+++ target/context-diff/bar\t", + "--- target/context-diff/foo\tTIMESTAMP", + "+++ target/context-diff/bar\tTIMESTAMP", "", ] .join("\n"); diff --git a/tests/integration.rs b/tests/integration.rs index 661aa58..853ba4d 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -185,7 +185,7 @@ fn read_from_stdin() -> Result<(), Box> { assert_diff_eq!( output, format!( - "--- {}\t\n+++ -\t\n@@ -1 +1 @@\n-foo\n+bar\n", + "--- {}\tTIMESTAMP\n+++ -\tTIMESTAMP\n@@ -1 +1 @@\n-foo\n+bar\n", file1.path().to_string_lossy() ) ); @@ -201,7 +201,7 @@ fn read_from_stdin() -> Result<(), Box> { assert_diff_eq!( output, format!( - "--- -\t\n+++ {}\t\n@@ -1 +1 @@\n-foo\n+bar\n", + "--- -\tTIMESTAMP\n+++ {}\tTIMESTAMP\n@@ -1 +1 @@\n-foo\n+bar\n", file2.path().to_string_lossy() ) ); @@ -226,7 +226,7 @@ fn read_from_stdin() -> Result<(), Box> { assert_diff_eq!( output, format!( - "--- {}\t\n+++ /dev/stdin\t\n@@ -1 +1 @@\n-foo\n+bar\n", + "--- {}\tTIMESTAMP\n+++ /dev/stdin\tTIMESTAMP\n@@ -1 +1 @@\n-foo\n+bar\n", file1.path().to_string_lossy() ) );