|
|
@@ -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())
|
|
|
+ }
|
|
|
+
|
|
|
+}
|