@@ -358,3 +358,47 @@ pub fn is_valid(repo_path: &str) -> Result<bool> {
358
358
let repo = Repository :: open_ext ( repo_path, RepositoryOpenFlags :: empty ( ) , Vec :: < & Path > :: new ( ) ) ;
359
359
Ok ( repo. is_ok ( ) && !repo?. is_bare ( ) )
360
360
}
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