use super::*;
use crate::age::analyzer::{AgeThresholds, FileAge, classify};
use std::path::PathBuf;
const NOW: i64 = 1_700_000_000;
const DAY: i64 = 86_400;
fn sample() -> Vec<FileAge> {
vec![
classify(
PathBuf::from("src/foo.rs"),
"Rust",
NOW - 30 * DAY,
NOW,
&AgeThresholds::default(),
),
classify(
PathBuf::from("src/bar.rs"),
"Rust",
NOW - 180 * DAY,
NOW,
&AgeThresholds::default(),
),
classify(
PathBuf::from("src/old.rs"),
"Rust",
NOW - 500 * DAY,
NOW,
&AgeThresholds::default(),
),
]
}
#[test]
fn print_report_does_not_panic() {
print_report(&sample(), &AgeThresholds::default());
}
#[test]
fn print_report_empty() {
print_report(&[], &AgeThresholds::default());
}
#[test]
fn print_json_does_not_panic() {
print_json(&sample());
}
#[test]
fn print_json_empty() {
print_json(&[]);
}
#[test]
fn separator_matches_row_width() {
let files = sample();
let col_path = report_helpers::max_path_width(files.iter().map(|f| f.path.as_path()), 4);
let sep_width = 1 + col_path + 1 + COL_LANG + 1 + COL_DATE + 1 + COL_DAYS + 1 + COL_STATUS;
let row = format!(
" {:<col_path$} {:<COL_LANG$} {:>COL_DATE$} {:>COL_DAYS$} {:>COL_STATUS$}",
"File", "Language", "Last Modified", "Days", "Status"
);
assert_eq!(row.len(), sep_width);
}