Skip to content

Commit 3d7b14b

Browse files
committedNov 18, 2021
Adding tests for display time in output
1 parent 6ceb13f commit 3d7b14b

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
 

Diff for: ‎src/info/repo.rs

+44
Original file line numberDiff line numberDiff line change
@@ -358,3 +358,47 @@ pub fn is_valid(repo_path: &str) -> Result<bool> {
358358
let repo = Repository::open_ext(repo_path, RepositoryOpenFlags::empty(), Vec::<&Path>::new());
359359
Ok(repo.is_ok() && !repo?.is_bare())
360360
}
361+
362+
#[cfg(test)]
363+
mod tests {
364+
365+
use super::*;
366+
use git2::Time;
367+
use std::time::SystemTime;
368+
369+
#[test]
370+
fn display_time_as_human_time_current_time_now() {
371+
let current_time = SystemTime::now()
372+
.duration_since(SystemTime::UNIX_EPOCH)
373+
.unwrap();
374+
375+
let time = Time::new(current_time.as_secs() as i64, 0);
376+
let result = git_time_to_formatted_time(&time, false);
377+
assert_eq!(result, "now");
378+
}
379+
380+
#[test]
381+
fn display_time_as_human_time_current_time_arbitrary() {
382+
let time = 1600000000;
383+
let time = Time::new(time, 0);
384+
let result = git_time_to_formatted_time(&time, false);
385+
assert_eq!(result, "a year ago");
386+
}
387+
388+
#[test]
389+
fn display_time_as_iso_time_some_time() {
390+
// Set "current" time to 11/18/2021 11:02:22
391+
let time_sample = 1637233282;
392+
let time = Time::new(time_sample, 0);
393+
let result = git_time_to_formatted_time(&time, true);
394+
assert_eq!(result, "2021-11-18T11:01:22Z");
395+
}
396+
#[test]
397+
fn display_time_as_iso_time_current_epoch() {
398+
let time_sample = 0;
399+
let time = Time::new(time_sample, 0);
400+
let result = git_time_to_formatted_time(&time, true);
401+
assert_eq!(result, "1970-01-01T00:00:00Z");
402+
}
403+
404+
}

0 commit comments

Comments
 (0)