diff options
author | Dan Davison <dandavison7@gmail.com> | 2020-06-23 11:21:44 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2020-06-25 12:35:07 -0400 |
commit | 8ca7d67058b8beeb4472e904fb19feb0934b5327 (patch) | |
tree | d1439a794ccbce60ce0828ef99901d7ae11aba70 | |
parent | 3c33aec4f8d811ddab20dc8934550b50081184c2 (diff) |
Start adding tests of numbers feature
-rw-r--r-- | src/features/mod.rs | 1 | ||||
-rw-r--r-- | src/features/numbers.rs | 105 |
2 files changed, 106 insertions, 0 deletions
diff --git a/src/features/mod.rs b/src/features/mod.rs index c05f740a..67596633 100644 --- a/src/features/mod.rs +++ b/src/features/mod.rs @@ -73,6 +73,7 @@ pub mod color_only; pub mod diff_highlight; pub mod diff_so_fancy; pub mod navigate; +pub mod numbers; #[cfg(test)] pub mod tests { diff --git a/src/features/numbers.rs b/src/features/numbers.rs new file mode 100644 index 00000000..401118b1 --- /dev/null +++ b/src/features/numbers.rs @@ -0,0 +1,105 @@ +#[cfg(test)] +pub mod tests { + use console::strip_ansi_codes; + + use crate::tests::integration_test_utils::integration_test_utils::{make_config, run_delta}; + + #[test] + fn test_two_minus_lines() { + let config = make_config(&[ + "--number", + "--number-left-format", + "%lm⋮", + "--number-right-format", + "%lp│", + ]); + let output = run_delta(TWO_MINUS_LINES_DIFF, &config); + let output = strip_ansi_codes(&output); + let mut lines = output.lines().skip(4); + assert_eq!(lines.next().unwrap(), " 1 ⋮ │a = 1"); + assert_eq!(lines.next().unwrap(), " 2 ⋮ │b = 2"); + } + + #[test] + fn test_two_plus_lines() { + let config = make_config(&[ + "--number", + "--number-left-format", + "%lm⋮", + "--number-right-format", + "%lp│", + ]); + let output = run_delta(TWO_PLUS_LINES_DIFF, &config); + let output = strip_ansi_codes(&output); + let mut lines = output.lines().skip(4); + assert_eq!(lines.next().unwrap(), " ⋮ 1 │a = 1"); + assert_eq!(lines.next().unwrap(), " ⋮ 2 │b = 2"); + } + + #[test] + fn test_one_minus_one_plus_line() { + let config = make_config(&[ + "--number", + "--number-left-format", + "%lm⋮", + "--number-right-format", + "%lp│", + ]); + let output = run_delta(ONE_MINUS_ONE_PLUS_LINE_DIFF, &config); + let output = strip_ansi_codes(&output); + let mut lines = output.lines().skip(4); + assert_eq!(lines.next().unwrap(), " 1 ⋮ 1 │a = 1"); + assert_eq!(lines.next().unwrap(), " 2 ⋮ │b = 2"); + assert_eq!(lines.next().unwrap(), " ⋮ 2 │bb = 2"); + } + + #[test] + fn test_repeated_placeholder() { + let config = make_config(&[ + "--number", + "--number-left-format", + "%lm %lm⋮", + "--number-right-format", + "%lp│", + ]); + let output = run_delta(ONE_MINUS_ONE_PLUS_LINE_DIFF, &config); + println!("{}", output); + let output = strip_ansi_codes(&output); + let mut lines = output.lines().skip(4); + assert_eq!(lines.next().unwrap(), " 1 1 ⋮ 1 │a = 1"); + assert_eq!(lines.next().unwrap(), " 2 2 ⋮ │b = 2"); + assert_eq!(lines.next().unwrap(), " ⋮ 2 │bb = 2"); + } + + const TWO_MINUS_LINES_DIFF: &str = "\ +diff --git i/a.py w/a.py +index 223ca50..e69de29 100644 +--- i/a.py ++++ w/a.py +@@ -1,2 +0,0 @@ +-a = 1 +-b = 2 +"; + + const TWO_PLUS_LINES_DIFF: &str = "\ +diff --git c/a.py i/a.py +new file mode 100644 +index 0000000..223ca50 +--- /dev/null ++++ i/a.py +@@ -0,0 +1,2 @@ ++a = 1 ++b = 2 +"; + + const ONE_MINUS_ONE_PLUS_LINE_DIFF: &str = "\ +diff --git i/a.py w/a.py +index 223ca50..367a6f6 100644 +--- i/a.py ++++ w/a.py +@@ -1,2 +1,2 @@ + a = 1 +-b = 2 ++bb = 2 +"; +} |