test and fix for auto-clockout of a future clockin
This commit is contained in:
		
							parent
							
								
									b616cdf0de
								
							
						
					
					
						commit
						38fd44917c
					
				| @ -26,18 +26,19 @@ instance Show TimeLog where | ||||
| -- midnight are split into days to give accurate per-day totals. | ||||
| entriesFromTimeLogEntries :: LocalTime -> [TimeLogEntry] -> [Entry] | ||||
| entriesFromTimeLogEntries _ [] = [] | ||||
| entriesFromTimeLogEntries t [i] | ||||
|     | odate > idate = [entryFromTimeLogInOut i o'] ++ entriesFromTimeLogEntries t [i',o] | ||||
| entriesFromTimeLogEntries now [i] | ||||
|     | odate > idate = [entryFromTimeLogInOut i o'] ++ entriesFromTimeLogEntries now [i',o] | ||||
|     | otherwise = [entryFromTimeLogInOut i o] | ||||
|     where | ||||
|       o = TimeLogEntry 'o' t "" | ||||
|       o = TimeLogEntry 'o' end "" | ||||
|       end = if itime > now then itime else now | ||||
|       (itime,otime) = (tldatetime i,tldatetime o) | ||||
|       (idate,odate) = (localDay itime,localDay otime) | ||||
|       o' = o{tldatetime=itime{localDay=idate, localTimeOfDay=TimeOfDay 23 59 59}} | ||||
|       i' = i{tldatetime=itime{localDay=addDays 1 idate, localTimeOfDay=midnight}} | ||||
| entriesFromTimeLogEntries t (i:o:rest) | ||||
|     | odate > idate = [entryFromTimeLogInOut i o'] ++ entriesFromTimeLogEntries t (i':o:rest) | ||||
|     | otherwise = [entryFromTimeLogInOut i o] ++ entriesFromTimeLogEntries t rest | ||||
| entriesFromTimeLogEntries now (i:o:rest) | ||||
|     | odate > idate = [entryFromTimeLogInOut i o'] ++ entriesFromTimeLogEntries now (i':o:rest) | ||||
|     | otherwise = [entryFromTimeLogInOut i o] ++ entriesFromTimeLogEntries now rest | ||||
|     where | ||||
|       (itime,otime) = (tldatetime i,tldatetime o) | ||||
|       (idate,odate) = (localDay itime,localDay otime) | ||||
|  | ||||
							
								
								
									
										5
									
								
								Tests.hs
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Tests.hs
									
									
									
									
									
								
							| @ -337,6 +337,11 @@ tests = [ | ||||
|      assertEntriesGiveStrings "auto-clock-out if needed"  | ||||
|                                   [clockin (mktime today "00:00:00") ""]  | ||||
|                                   ["00:00-12:00"] | ||||
|      let t = localTimeOfDay $ utcToLocalTime tz $ addUTCTime 100 now | ||||
|          s = formatTime defaultTimeLocale "%H:%M" t | ||||
|      assertEntriesGiveStrings "use the clockin time for auto-clockout if it's in the future" | ||||
|                                   [clockin (LocalTime today t) ""] | ||||
|                                   [printf "%s-%s" s s] | ||||
| 
 | ||||
|   ,"expandAccountNames" ~: do | ||||
|     expandAccountNames ["assets:cash","assets:checking","expenses:vacation"] `is` | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user