diff options
author | William Carroll <wpcarro@gmail.com> | 2020-08-13T21·05+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-08-20T10·26+0100 |
commit | 3fdfa14355088af602877153b49a85a5941fe879 (patch) | |
tree | 3ea0c6abe846a687b268f42931ce6f478302e571 /website/sandbox/shift-time/Spec.hs | |
parent | 5fd79ce0ffd27f860d754edf398895c1f84a8e0b (diff) |
Support parsing and shifting time
TL;DR: - Adds string-conversions library - Adds tests for remaining units and repeating requests - Adds a REPL in main
Diffstat (limited to 'website/sandbox/shift-time/Spec.hs')
-rw-r--r-- | website/sandbox/shift-time/Spec.hs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/website/sandbox/shift-time/Spec.hs b/website/sandbox/shift-time/Spec.hs index dcb28248b380..ba3f71d7c754 100644 --- a/website/sandbox/shift-time/Spec.hs +++ b/website/sandbox/shift-time/Spec.hs @@ -15,3 +15,40 @@ main = hspec $ do it "handles seconds" $ do property $ \x -> parseTime (Text.concat [x & show & Text.pack, "s"]) == (Just defaultShiftTimeRequest { shiftSeconds = x }) + + it "handles minutes" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "m"]) == + (Just defaultShiftTimeRequest { shiftMinutes = x }) + + it "handles hours" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "h"]) == + (Just defaultShiftTimeRequest { shiftHours = x }) + + it "handles days" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "d"]) == + (Just defaultShiftTimeRequest { shiftDays = x }) + + it "handles weeks" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "w"]) == + (Just defaultShiftTimeRequest { shiftWeeks = x }) + + it "handles months" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "M"]) == + (Just defaultShiftTimeRequest { shiftMonths = x }) + + it "handles quarters" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "q"]) == + (Just defaultShiftTimeRequest { shiftQuarters = x }) + + it "handles multiple shifts" $ do + parseTime "1s-20m5h0d-4w100M-3y2q" == + (Just $ ShiftTimeRequest + { shiftSeconds = 1 + , shiftMinutes = -20 + , shiftHours = 5 + , shiftDays = 0 + , shiftWeeks = -4 + , shiftMonths = 100 + , shiftQuarters = 2 + , shiftYears = -3 + }) |