From 9642f69ce7eef2bab70a32cb6ed8def2f216e420 Mon Sep 17 00:00:00 2001 From: Benjamin Sago Date: Sun, 21 May 2017 16:54:40 +0100 Subject: [PATCH] Tests for Git rendering --- src/output/render/mod.rs | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/output/render/mod.rs b/src/output/render/mod.rs index 65df788..27ff95c 100644 --- a/src/output/render/mod.rs +++ b/src/output/render/mod.rs @@ -97,3 +97,58 @@ impl f::Git { } } } + + +#[cfg(test)] +pub mod test { + use output::details::Details; + use output::cell::{TextCell, DisplayWidth}; + use fs::fields as f; + + use ansi_term::Colour::*; + + + #[test] + fn git_blank() { + let mut details = Details::default(); + details.colours.punctuation = Fixed(44).normal(); + + let stati = f::Git { + staged: f::GitStatus::NotModified, + unstaged: f::GitStatus::NotModified, + }; + + let expected = TextCell { + width: DisplayWidth::from(2), + contents: vec![ + Fixed(44).paint("-"), + Fixed(44).paint("-"), + ].into(), + }; + + assert_eq!(expected, stati.render(&details.colours).into()) + } + + #[test] + fn git_new_changed() { + let mut details = Details::default(); + details.colours.git.new = Red.normal(); + details.colours.git.modified = Purple.normal(); + + let stati = f::Git { + staged: f::GitStatus::New, + unstaged: f::GitStatus::Modified, + }; + + let expected = TextCell { + width: DisplayWidth::from(2), + contents: vec![ + Red.paint("N"), + Purple.paint("M"), + ].into(), + }; + + assert_eq!(expected, stati.render(&details.colours).into()) + } + +} \ No newline at end of file