use a pretty assertion

This commit is contained in:
Abraham Toriz 2021-06-22 10:18:16 -05:00
parent 62efba19b9
commit 79afcaed89
No known key found for this signature in database
GPG Key ID: D5B4A746DB5DD42A
3 changed files with 67 additions and 3 deletions

49
Cargo.lock generated
View File

@ -22,6 +22,15 @@ dependencies = [
"winapi",
]
[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
[[package]]
name = "atty"
version = "0.2.14"
@ -70,7 +79,7 @@ version = "2.33.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
dependencies = [
"ansi_term",
"ansi_term 0.11.0",
"atty",
"bitflags",
"strsim",
@ -79,6 +88,22 @@ dependencies = [
"vec_map",
]
[[package]]
name = "ctor"
version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "diff"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
[[package]]
name = "dirs"
version = "3.0.2"
@ -208,12 +233,33 @@ version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]]
name = "output_vt100"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9"
dependencies = [
"winapi",
]
[[package]]
name = "pkg-config"
version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
[[package]]
name = "pretty_assertions"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cab0e7c02cf376875e9335e0ba1da535775beb5450d21e1dffca068818ed98b"
dependencies = [
"ansi_term 0.12.1",
"ctor",
"diff",
"output_vt100",
]
[[package]]
name = "proc-macro2"
version = "1.0.27"
@ -358,6 +404,7 @@ dependencies = [
"chrono",
"clap",
"dirs",
"pretty_assertions",
"rusqlite",
"serde",
"serde_yaml",

View File

@ -15,3 +15,6 @@ dirs = "*"
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.8"
toml = "0.5"
[dev-dependencies]
pretty_assertions = "0.7.2"

View File

@ -45,8 +45,22 @@ impl FromStr for Formatter {
#[cfg(test)]
mod tests {
use super::*;
use std::fmt;
use crate::types::Time;
use pretty_assertions::assert_eq;
#[derive(PartialEq, Eq)]
pub struct PrettyString<'a>(pub &'a str);
/// Make diff to display string as multi-line string
impl<'a> fmt::Debug for PrettyString<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str(self.0)
}
}
#[test]
fn test_text_output() {
let formatter = Formatter::Text;
@ -60,7 +74,7 @@ mod tests {
formatter.print_formatted(entries, &mut output).unwrap();
assert_eq!(String::from_utf8_lossy(&output), "Timesheet: SpecSheet
assert_eq!(PrettyString(&String::from_utf8_lossy(&output)), PrettyString("Timesheet: default
Day Start End Duration Notes
Fri Oct 03, 2008 12:00:00 - 14:00:00 2:00:00 entry 1
16:00:00 - 18:00:00 2:00:00 entry 2
@ -70,6 +84,6 @@ mod tests {
4:00:00
-----------------------------------------------------------
Total 8:00:00
");
"));
}
}