@@ -226,21 +226,33 @@ mod relative {
226226            let  time = gix_date:: parse ( input,  Some ( now) ) . expect ( "relative time string should parse to a Time" ) ; 
227227            ( input,  time) 
228228        } ) ; 
229-         assert_eq ! ( with_times. map( |_| Sign :: Plus ) ,  with_times. map( |( _,  time) | time. sign) ) ; 
230-         assert_eq ! ( with_times. map( |_| 0 ) ,  with_times. map( |( _,  time) | time. offset) ) ; 
229+         assert_eq ! ( 
230+             with_times. map( |( _,  time) | time. sign) , 
231+             with_times. map( |_| Sign :: Plus ) , 
232+             "Despite being in the past, the dates produced are positive, as they are still post-epoch" 
233+         ) ; 
234+         assert_eq ! ( 
235+             with_times. map( |( _,  time) | time. offset) , 
236+             with_times. map( |_| 0 ) , 
237+             "They don't pick up local time" 
238+         ) ; 
231239
232240        let  with_expected = cases. map ( |( input,  span) | { 
233-             let  expected = Zoned :: try_from ( now) 
234-                 . expect ( "test needs to convert current time to a timestamp" ) 
235-                 // account for the loss of precision when creating `Time` with seconds 
236-                 . round ( 
237-                     jiff:: ZonedRound :: new ( ) 
238-                         . smallest ( jiff:: Unit :: Second ) 
239-                         . mode ( jiff:: RoundMode :: Trunc ) , 
240-                 ) 
241-                 . expect ( "test needs to truncate current timestamp to seconds" ) 
242-                 . saturating_sub ( span) 
243-                 . timestamp ( ) ; 
241+             let  expected = Zoned :: new ( 
242+                 now. try_into ( ) . expect ( "system time is representable" ) , 
243+                 // As relative dates are always UTC in Git, we do the same, and must 
244+                 // compare to UTC as well or else time might be off due to daylight savings, etc. 
245+                 jiff:: tz:: TimeZone :: UTC , 
246+             ) 
247+             // account for the loss of precision when creating `Time` with seconds 
248+             . round ( 
249+                 jiff:: ZonedRound :: new ( ) 
250+                     . smallest ( jiff:: Unit :: Second ) 
251+                     . mode ( jiff:: RoundMode :: Trunc ) , 
252+             ) 
253+             . expect ( "test needs to truncate current timestamp to seconds" ) 
254+             . saturating_sub ( span) 
255+             . timestamp ( ) ; 
244256
245257            ( input,  expected) 
246258        } ) ; 
0 commit comments